function LoadPNG($imgname)
{
$name = $_GET['name'];
$ip = $_GET['ip'];
$dest = imagecreatefromjpeg("http://cs-servera.com.ua/images/maps/cs/$_GET[map].jpg");
$players = $_GET['players'];
$playersmax = $_GET['maxplayers'];
$mapname = $_GET['map'];
$sCount = 22;
$cutParam ='';
if(strlen($name) > $sCount){ // если кол-во символов строки превышает $scount
$name = substr($name,0,$sCount).$cutParam; // обрезаем строку до символа $scount и ставим окончание $cutParam
}
/* Пытаемся открыть */
$im = @imagecreatefrompng($imgname);
$color=ImageColorAllocate($im, 250, 0, 0); //выбор цвета
/* определяем размещение текста на картинке */
$a = '/';
//imagecopy($im, $dest, 10, 50, 10, 30, 468, 60, 75);
imagecopy ($im,$dest, 5, 5, 100, 1, 60, 50);
//вывод текста
imagestring($im, 3, 260, 10, $ip, $color);
imagestring($im, 3, 155, 37, $players, $color);
imagestring($im, 3, 168, 37, $a, $color);
imagestring($im, 3, 250, 37, $mapname, $color);
imagestring($im, 3, 175, 37, $playersmax, $color);
imagestring($im, 3, 100, 10, $name, $color);
/* Если не удалось */
if(!$im)
{
/* Создаем пустое изображение */
$im = imagecreatetruecolor(150, 30);
$bgc = imagecolorallocate($im, 255, 255, 255);
$tc = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 150, 30, $bgc);
/* Выводим сообщение об ошибке */
imagestring($im, 1, 5, 5, 'Ошибка загрузки ' . $imgname, $tc);
}
return $im;
}
header('Content-Type: image/png');
$img = LoadPNG('1.png');
imagepng($img);
imagedestroy($img);
получаеться ссылка вот такого вида (что бы заполнило все что нужно
/image.php?name=CSFREENET%20|%20RESPAWN&ip=csfreenet.com.ua:27015&map=de_dust2002&players=21&maxplayers=25
но, некоторые добрые люди подставят сюда свои значения и будет на халяву мониторинг, хотелось бы сделать так, что бы картинка при обновлении кеша сохранялась на сервер, только как сделать само сохранение я не знаю, помогите :)
Спустя 16 минут, 47 секунд (1.09.2012 - 15:12) OneFinal написал(а):
Сохраняю вот так, но дает ошибку файл не читаймый
$url="http://localhost/lgsl/image.php?name={$server['s']['name']}&ip={$server['b']['ip']}:{$server['b']['c_port']}&map={$server['s']['map']}&players={$server['s']['players']}&maxplayers={$server['s']['playersmax']}";
$img=file_get_contents($url);
//$arr=parse_url ($url);
$name=basename("web-$id");
file_put_contents("C:/Program Files (x86)/VertrigoServ/www/lgsl/lgsl_files/files/".$name.".png",$img);
Спустя 8 минут, 46 секунд (1.09.2012 - 15:21) red devil написал(а):
используй конкатенацию
От правильного пути много что зависит
//.......
$dest = imagecreatefromjpeg("http://cs-servera.com.ua/images/maps/cs/" . $_GET['map'] .".jpg");
//.......
От правильного пути много что зависит
Спустя 7 минут, 26 секунд (1.09.2012 - 15:28) OneFinal написал(а):
картинка сама генерируется нормально, но вот сохраняться не хочет
Спустя 3 минуты, 13 секунд (1.09.2012 - 15:32) red devil написал(а):
OneFinal я в этом не спец, но может это все от того, что картинка берется в формате jpg а сохраняется в png?
Спустя 2 минуты, 48 секунд (1.09.2012 - 15:34) OneFinal написал(а):
исходный файл png, на него накладывается jpg ( Работает отлично пруф http://dump.ru/file/5839996 )
Спустя 21 минута, 42 секунды (1.09.2012 - 15:56) red devil написал(а):
file_put_contents - записывает в файл строку, как оно тебе сохранит картику.
Попробуй
Попробуй
copy($url, "C:/Program Files (x86)/VertrigoServ/www/lgsl/lgsl_files/files/".$name.".png");
Спустя 8 минут, 12 секунд (1.09.2012 - 16:04) OneFinal написал(а):
все дело в этой строчке
если вписывать просто значения то картинка сохраняется.
$url="http://localhost/lgsl/image.php?name={$server['s']['name']}&ip={$server['b']['ip']}:{$server['b']['c_port']}&map={$server['s']['map']}&players={$server['s']['players']}&maxplayers={$server['s']['playersmax']}";
если вписывать просто значения то картинка сохраняется.
Спустя 14 минут, 8 секунд (1.09.2012 - 16:18) red devil написал(а):
Стразу надо было говорить
$url="http://localhost/lgsl/image.php?name=" . $server['s']['name'] . "&ip=" . $server['b']['ip'] . ":" . $server['b']['c_port'] . "&map=" . $server['s']['map'] . "&players=" . $server['s']['players'] . "&maxplayers=" . $server['s']['playersmax'];
Спустя 5 минут, 12 секунд (1.09.2012 - 16:24) OneFinal написал(а):
неа, все ровно, пробывал так тот же результат.
$servernames = $server['s']['name'];
$ips = $server['b']['ip'];
$ports = $server['b']['c_port'];
$maps = $server['s']['map'];
$playerss = $server['s']['players'];
$maxplayerss=$server['s']['playersmax'];
http://localhost/lgsl/image.php?name=$servernames&ip=$ips:$ports&map=$maps&players=$playerss& amp;maxplayers=$maxplayerss
Спустя 1 минута, 58 секунд (1.09.2012 - 16:26) OneFinal написал(а):
Цитата (OneFinal @ 1.09.2012 - 14:24) |
неа, все ровно, пробывал так тот же результат.$servernames = $server['s']['name']; http://localhost/lgsl/image.php?name=$servernames&ip=$ips:$ports&map=$maps&players=$playerss& amp; amp;maxplayers=$maxplayerss |
с таким вариантом, картинка выводиться но не сохраняется .
Спустя 5 минут, 3 секунды (1.09.2012 - 16:31) red devil написал(а):
Цитата |
с таким вариантом, картинка выводиться но не сохраняется . |
а теперь читай что я тебе писал тут
Цитата |
file_put_contents - записывает в файл строку, как оно тебе сохранит картику. Попробуй copy($url, "C:/Program Files (x86)/VertrigoServ/www/lgsl/lgsl_files/files/".$name.".png"); |
Спустя 2 минуты, 15 секунд (1.09.2012 - 16:33) OneFinal написал(а):
так и стоит.
$url="http://localhost/lgsl/image.php?name=" . $server['s']['name'] . "&ip=" . $server['b']['ip'] . ":" . $server['b']['c_port'] . "&map=" . $server['s']['map'] . "&players=" . $server['s']['players'] . "&maxplayers=" . $server['s']['playersmax'];$img=file_get_contents($url);
//$arr=parse_url ($url);
$name="web-$id";
copy($url, "C:/Program Files (x86)/VertrigoServ/www/lgsl/lgsl_files/files/".$name.".png");
Спустя 3 часа, 40 минут, 56 секунд (1.09.2012 - 20:14) red devil написал(а):
Цитата |
так и стоит. |
Это означает работает или не работает?
Спустя 8 минут, 10 секунд (1.09.2012 - 20:22) OneFinal написал(а):
не работает.
Спустя 14 минут, 28 секунд (1.09.2012 - 20:36) red devil написал(а):
У меня работает. Тести
<?php
if(copy("http://cs-servera.com.ua/images/maps/cs/de_dust.jpg", "test.jpg"))
{
echo 'uraa';
}
else
{
echo 'ne ura';
}
Спустя 17 минут, 50 секунд (1.09.2012 - 20:54) OneFinal написал(а):
сработало.
Спустя 9 минут, 32 секунды (1.09.2012 - 21:04) red devil написал(а):
OneFinal да, но только я сохранял в формате jpg а тебе нужно в png помни
Спустя 4 минуты, 24 секунды (1.09.2012 - 21:08) OneFinal написал(а):
дык, смотри я же говорил что строчка такого типа срабатывает.
а когда подставляешь переменные то нет
http://localhost/lgsl/image.php?name=Name&ip=124.0.0.1:24015&map=LOL&players=8&maxplayers=16
а когда подставляешь переменные то нет
http://localhost/lgsl/image.php?name=" .$servernames . "&ip=" .$ips . ":" .$ports . "&map=" .$maps . "&players=" .$playerss . "&maxplayers=" .$maxplayerss . "
Спустя 31 секунда (1.09.2012 - 21:09) OneFinal написал(а):
и когда вот так пишешь тоже нет
http://localhost/lgsl/image.php?name=" . $server['s']['name'] . "&ip=" . $server['b']['ip'] . ":" . $server['b']['c_port'] . "&map=" . $server['s']['map'] . "&players=" . $server['s']['players'] . "&maxplayers=" . $server['s']['playersmax']
Спустя 2 часа, 45 минут, 29 секунд (1.09.2012 - 23:54) dron4ik написал(а):
проверь echo $url... может потерял что то...
file_put_contents - записывает и картинки... он всемогущ)
file_put_contents - записывает и картинки... он всемогущ)
Спустя 5 минут, 41 секунда (2.09.2012 - 00:00) OneFinal написал(а):
проверял, все отлично, если просто скопировать строчку что выведет echo срабатывает картинка генерируется, НО если с переменными то нет, мб дело в кодировке где то ?
Спустя 20 минут, 40 секунд (2.09.2012 - 00:21) dron4ik написал(а):
C:/Program Files (x86)/VertrigoServ/www/lgsl/lgsl_files/files/???
попробуй через Z:
попробуй через Z:
Спустя 8 часов, 42 минуты, 4 секунды (2.09.2012 - 09:03) OneFinal написал(а):
в каком смысле ?
Спустя 1 час, 45 минут, 27 секунд (2.09.2012 - 10:48) red devil написал(а):
OneFinal попробуй вместо этого:
Это:
C:/Program Files (x86)/VertrigoServ/www/lgsl/lgsl_files/files/???
Это:
$_SERVER['DOCUMENT_ROOT'] . "lgsl/lgsl_files/files/???";
Спустя 17 минут, 7 секунд (2.09.2012 - 11:05) OneFinal написал(а):
Permission denied in
это стоит не на сайте а на компе, и как мне права то поставить ?)
это стоит не на сайте а на компе, и как мне права то поставить ?)
Спустя 1 минута, 46 секунд (2.09.2012 - 11:07) pak написал(а):
Цитата (red devil @ 2.09.2012 - 08:48) |
OneFinal попробуй вместо этого:C:/Program Files (x86)/VertrigoServ/www/lgsl/lgsl_files/files/??? Это: $_SERVER['DOCUMENT_ROOT'] . "lgsl/lgsl_files/files/???"; |
думаю лутше так:
str_replace('\\', '/', $_SERVER['DOCUMENT_ROOT']) .'/')
Спустя 3 минуты, 9 секунд (2.09.2012 - 11:10) OneFinal написал(а):
если я правильно понял
но так тоже нет, отдает файл весом в 29кб и он не читается.
copy($url, str_replace('\\', '/', $_SERVER['DOCUMENT_ROOT']) .'/' . "lgsl/lgsl_files/files/".$name.".png");
но так тоже нет, отдает файл весом в 29кб и он не читается.
Спустя 22 минуты, 12 секунд (2.09.2012 - 11:32) dron4ik написал(а):
file_put_contents($url, str_replace('\\', '/', $_SERVER['DOCUMENT_ROOT']) .'/' . "lgsl/lgsl_files/files/".$name.".png");
Спустя 16 минут, 1 секунда (2.09.2012 - 11:48) OneFinal написал(а):
$url="http://localhost/lgsl/image.php?name=" . $server['s']['name'] . "&ip=" . $server['b']['ip'] . ":" . $server['b']['c_port'] . "&map=" . $server['s']['map'] . "&players=" . $server['s']['players'] . "&maxplayers=" . $server['s']['playersmax'];c такой строкой дает ошибку
Warning: file_put_contents(http://localhost/lgsl/image.php?name=АДРЕНАЛИНЧИК ©&ip=62.122.213.36:27333&map=de_nuke&players=15&maxplayers=32) [function.file-put-contents]: failed to open stream: HTTP wrapper does not support writeable connections in C:\Program Files (x86)\VertrigoServ\www\lgsl\lgsl_files\lgsl_details.php on line 401
с такой тоже самое
$url="http://localhost/lgsl/image.php?name=$servernames&ip=$ips:$ports&map=$maps&players=$playerss&maxplayers=$maxplayerss";
Спустя 18 минут, 3 секунды (2.09.2012 - 12:06) OneFinal написал(а):
кстате в ошибке крокозябры.
Спустя 3 минуты, 31 секунда (2.09.2012 - 12:10) OneFinal написал(а):
решил проблему с крокозябрами
вот так
но все же ошибка не прошла.
вот так
$url=urldecode ("http://localhost/lgsl/image.php?name=$servernames&ip=$ips:$ports&map=$maps&players=$playerss&maxplayers=$maxplayerss");
но все же ошибка не прошла.
Спустя 1 час, 23 минуты, 30 секунд (2.09.2012 - 13:33) red devil написал(а):
OneFinal как я понял, то ошибка говорит - "путь не должен начинаться с HTTP" тоесть он по http файлы не читает
Спустя 27 минут, 49 секунд (2.09.2012 - 14:01) OneFinal написал(а):
Цитата (red devil @ 2.09.2012 - 11:33) |
OneFinal как я понял, то ошибка говорит - "путь не должен начинаться с HTTP" тоесть он по http файлы не читает |
хорошо, убрал http://
Теперь ошибка
Warning: file_put_contents(localhost/lgsl/image.php?name=АДРЕНАЛИНЧИК ©&ip=62.122.213.36:27333&map=de_cbble&players=28&maxplayers=32) [function.file-put-contents]: failed to open stream: No such file or directory in C:\Program Files (x86)\VertrigoServ\www\lgsl\lgsl_files\lgsl_details.php on line 402
хотя директория есть
Спустя 34 минуты, 15 секунд (2.09.2012 - 14:35) red devil написал(а):
Что то не так в файле lgsl_details.php на линии 402 смотри
Спустя 16 минут, 24 секунды (2.09.2012 - 14:52) OneFinal написал(а):
не держите меня за идиота епт
402 строка
вывел данные из $url получил такое
402 строка
file_put_contents($url, str_replace('\\', '/', $_SERVER['DOCUMENT_ROOT']) .'/' . "lgsl/lgsl_files/files/".$name.".png");
вывел данные из $url получил такое
http://localhost/lgsl/image.php?name=АДРЕНАЛИНЧИК ©&ip=62.122.213.36:27333&map=de_dust&players=30&maxplayers=32(без http:// пробовал тоже фонарь )
$url="localhost/lgsl/image.php?name=" . $server['s']['name'] . "&ip=" . $server['b']['ip'] . ":" . $server['b']['c_port'] . "&map=" . $server['s']['map'] . "&players=" . $server['s']['players'] . "&maxplayers=" . $server['s']['playersmax'];
/
Спустя 28 минут, 17 секунд (2.09.2012 - 15:20) sergeiss написал(а):
Цитата (OneFinal @ 1.09.2012 - 17:12) |
file_put_contents("C:/Program Files (x86)/VertrigoServ/www/lgsl/lgsl_files/files/".$name.".png",$img); |
Уже 3-я страница, но никто не предложил посмотреть, что же там в строке с именем (или я не увидел этого предложения?)
// вот это
file_put_contents("C:/Program Files (x86)/VertrigoServ/www/lgsl/lgsl_files/files/".$name.".png",$img);
// замени на
$file_name="C:/Program Files (x86)/VertrigoServ/www/lgsl/lgsl_files/files/".$name.".png";
echo $file_name.'<br>';
И посмотри, какое же на самом деле имя файла ты пытаешься передать. Скорее всего, у тебя там запрещенные символы есть.
Спустя 1 час, 2 минуты, 23 секунды (2.09.2012 - 16:23) OneFinal написал(а):
сделал но не много по другому, из справочника
bool imagepng ( resource $image [, string $filename [, int $quality [, int $filters ]]] )
image
Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().
filename
Путь для сохранения файла. Если не установлен или равен NULL, изображение будет выведено в поток вывода в бинарном виде.
Замечание:
Недопустимо передавать NULL, если не используются аргументы quality и filters.
quality
Степень сжатия: от 0 (нет сжатия) до 9.
filters
Позволяет уменьшить размер PNG файла. Это битовая маска, значением которой может быть комбинация констант PNG_FILTER_XXX.
Для включения или выключения всех фильтров удобно воспользоваться константами PNG_NO_FILTER или PNG_ALL_FILTERS соответственно.
Спустя 15 минут, 1 секунда (2.09.2012 - 16:38) OneFinal написал(а):
imagepng($img,$s.$id.'.png');вот так вот переменная $s содержит путь. :)