Гость
Покинул форум
Сообщений всего: 66
Дата рег-ции: Июнь 2012
Помог: 0 раз(а)
[+]
|
Здравствуйте PHP.SU,
Прошу помочь мне решить 2 проблемы(описание и скрипты в спойлерах)
проблема с GD (Отобразить)
http://noobtestphp[dot]p[dot]ht/bar/
Накопал я скриптик для генерации userbars, но увы нашел в нем несколько недочетов:
фон заливается пурпуным цветом, а хотелось бы оставить прозрачность
PHP:
скопировать код в буфер обмена
if ($_POST['userbar'] == true){ $nick = $_POST["name"]; //Получение Ника $race = $_POST["race"]; //Получение Расы $class = $_POST["class"]; //Получение Класса $guild = $_POST["guild"]; //Получение Клана $lvl = $_POST["lvl"]; //Получение Уровня $server = $_POST["serv"]; //Получение Сервера $gender = $_POST["gender"]; //Получение Пола $lvlcount = strlen($lvl); //Определение длины уровня //--------------------------------Перевод названий для аватарки----------------- $ru = array('Раса: ','Воин','Шаман','Сура','Ниндзя'); $eng = array('','warrior','shaman','sura','ninja'); //------------------------------------------------------------------------------ //------------------Рисуем наш текст на картинке(полный путь к шрифту обязателен)------------------ $coord = imagettfbbox(10, 0, "arial.ttf", $nick); //Вычисление размеров ника и координат $width = $coord[2] - $coord[0]; $height = $coord[1] - $coord[7]; // Координаты расчитываются по формуле: X(Y) = W(h) + ((wid(heig) -(+) $width($height) // Где: X(Y) - получившиеся координаты // W(h) - расположение максимального блока с текстом относительно верхнего и левого краев изображения (в px) // wid(heig) - размер блока, в который вы пишете ник (в px) $X = 106 + ((115 - $width) / 2); $Y = 58 + ((16 + $height) / 2); imageTTFText($im, 10 , 0 , $X, $Y, $colorintext, "arial.ttf", $nick); //Ник if($lvlcount == 1 ){ imageTTFText($im, 9 , 0 , 90 , 72 , $colortext, "arial.ttf", $lvl); } // Уровни 1-9 if($lvlcount == 2 ){ imageTTFText($im, 9 , 0 , 87 , 72 , $colortext, "arial.ttf", $lvl); } // Уровни 10-99 if($lvlcount == 3 ){ imageTTFText($im, 9 , 0 , 83 , 72 , $colortext, "arial.ttf", $lvl); } // Уровни 100+ // Постоянный текст imageTTFText($im, 9 , 0 , 105 , 35 , $colortext, "arial.ttf", "Раса:"); imageTTFText($im, 9 , 0 , 105 , 50 , $colortext, "arial.ttf", "Класс:"); imageTTFText($im, 9 , 0 , 230 , 50 , $colortext, "arial.ttf", "Гильдия:"); imageTTFText($im, 9 , 0 , 230 , 35 , $colortext, "arial.ttf", "Сервер:"); // Введенные данные imageTTFText($im, 9 , 0 , 138 , 35 , $colorintext, "arial.ttf", $race); //Раса imageTTFText($im, 9 , 0 , 144 , 50 , $colorintext, "arial.ttf", $class); //Класс imageTTFText($im, 9 , 0 , 280 , 50 , $colorintext, "arial.ttf", $guild); //Клан imageTTFText($im, 9 , 0 , 276 , 35 , $colorintext, "arial.ttf", $server); //Сервер //------------------------------------------------------------------------------------------------- imagecopy($im,$avatar,0 ,0 ,0 ,0 ,92 ,89 ); //Вставляем аватра юзера в наш банер $imgname = 'userbar/'.microtime().'_userbar.png'; //Генерируем уникальное название для юзербара Imagepng($im, $imgname); // Сохраняем изображение imageDestroy($im); //Освобождаем память и закрываем изображение } echo '<img src="'.$imgname.'">'; //Выводим на экран юзербар
Боролся, боролся, но фон изменяется если производить замену пурпуного на прозрачный, но опять же кое где остаются бирюзовые обрывки
Генератор листа MD5-сумм файлов в каталоге (Отобразить)
Если я указываю папку с некоторым количеством директорий, то скрипт отказывается работать
если в указываю директорию с несколькими файлами - работает но криво, а именно:
создает файл 1 без расширения вместо того чтоб сохранять в md5.txt
а еще забыл - плохо работает с путями а именно приходится указывать ./work а не просто /work соответственно это засовывается в лист с суммами
PHP:
скопировать код в буфер обмена
$folder = '/work'; $file = 'md5.txt'; $separator = '[cell]'; function rdir ($path2dir) { while (false !== ($entry = $d->read())) { if ($entry!='.' && $entry!='..' && $entry!='' ) { $all_path = $path2dir.$entry; $new_path = go ($all_path, is_file($all_path)); if (!rdir ($new_path)) { return false; } } } } return true; } function go ($path2file, $is_file = true) { if ($is_file) { $as = 'http://'.$_SERVER['SERVER_NAME'].dirname($_SERVER['SCRIPT_NAME']).'/'.$path2file.$separator.md5_file($path2file).$separator.substr($path2file,strrpos($path2file,'\\')+6).'\n'; $fh = fopen($is_file, 'a+'); } else { $path2file = $path2file.'/'; } return $path2file; } if (rdir ($folder)){echo('OK');}
и если не затруднит прошу помочь привести информацию к такому виду:
путь|md5-сумма|вес
путь|md5-сумма|вес
Заранее благодарен.(Отредактировано автором: 18 Января, 2013 - 20:40:03)
|