PHP не указывает вывод только файлов html, он может генерировать динамические файлы gif. Я столкнулся с некоторыми проблемами при использовании php для динамического создания изображений gif, которые были решены. Я использую php4.05 (для win32) + apache3.1.2_win32.
Проблема 1: Программа, динамически генерирующая gif, вообще не запускается
Я написал пример использования php для создания gif. Когда я его запустил, я обнаружил, что страницу просто невозможно обновить, как будто она мертва, и в браузере не было никаких сообщений об ошибках.
Решение: Измените php.ini в каталоге, где находится php.
Измените php.ini в пути, где установлен php (примечание: в пути php должен быть php.ini). Extension_dir = расширение пути, в котором установлен php (для пример: c:phpextensions).
Вопрос 2: php_gd.dll не поддерживает gif.
Я загрузил динамическую библиотеку php_gd.dll в начале программы: dl("php_gd.dll"); при запуске программы появился следующий результат:
<br> <b >Внимание</b>: ImageGif: в этой сборке PHP в <b>d:apachehtdocsgif2.php3</b> в строке <b>12</b><br> нет поддержки GIF.
Решение: используйте php4.05
Только тогда я обнаружил, что проблема, описанная в книге, заключалась в том, что php_gd.dll вообще не поддерживает генерацию gif. Под руководством эксперта я обнаружил, что в моей версии php4.04 для win32 отсутствует php_gd_gif.dll, поэтому. Я скачал более позднюю версию php4 .05, которая содержит php_gd_gif.dll, поддерживающий создание динамических gif.
Вопрос 3: Появляется предупреждение: Предупреждение: Ошибка регистрации функции - повторяющееся имя - imagearc в d:apachehtdocsgif2.php3 в строке 3.
Программа выглядит следующим образом:
<?
dl("php_gd_gif.dll");
заголовок("тип контента:изображение/gif");
$im = imagecreate(400,30);
$black = imagecolorallocate($im,0,0,0);
$white = imagecolorallocate($im,255,255,255);
imageline($im,200,15,215,15,$white);
imagestring($im, 5, 4, 10, «Это гифка», $white);
imagegif($im);
imagedestroy ($ im);
?>
Решение: Измените программу или php.ini.
Функция dl() используется для загрузки dll, но если в файле php.ini перед нужной dll удален знак «;», то в данный момент не используйте эту функцию.
Если ";" перед расширением=php_gd_gif.dll в ini-файле не удалено, то для его загрузки необходимо использовать dl("php_gd_gif.dll"); подумает, что это повторяющееся имя.