PHP는 html 파일만 출력하도록 지정하지 않고 동적 gif 파일을 생성할 수 있습니다. php를 사용하여 gif 이미지를 동적으로 생성할 때 몇 가지 문제가 발생했는데, 이 문제는 php4.05(win32용) + apache3.1.2_win32를 사용하고 있습니다.
문제 1: gif를 동적으로 생성하는 프로그램을 전혀 시작할 수 없습니다
PHP를 사용하여 gif를 생성하는 방법에 대한 예제를 작성했는데, 실행했을 때 페이지가 죽은 것처럼 새로 고칠 수 없었고 브라우저에 오류 메시지도 표시되지 않았습니다.
해결 방법: php가 있는 디렉터리에서 php.ini를 수정합니다.
php가 설치된 경로에서 php.ini를 수정합니다. (참고: php 경로에 php.ini가 있어야 합니다.) Extension_dir = php가 설치된 경로 확장자(예: 예: c:phpextensions).
질문 2: php_gd.dll은 gif를 지원하지 않습니다.
프로그램 시작 부분에 php_gd.dll 동적 링크 라이브러리를 로드했지만 프로그램을 실행하면 다음과 같은 결과가 나타납니다.
<br> <b >경고</b>: ImageGif: <b>12</b><br>행의 <b>d:apachehtdocsgif2.php3</b>에 있는 이 PHP 빌드에서는 GIF가 지원되지 않습니다.
해결책: php4.05를 사용하세요
그제서야 책에 적힌 문제는 php_gd.dll이 gif 생성을 전혀 지원할 수 없다는 점을 발견했습니다. 전문가의 안내를 받은 후, win32용 php4.04 버전에는 php_gd_gif.dll이 없다는 것을 알게 되었습니다. 동적 gif 생성을 지원하는 php_gd_gif.dll이 포함된 php4.05의 상위 버전을 다운로드했습니다.
질문 3: 경고가 나타납니다. 경고: 함수 등록 실패 - 중복 이름 - 3행의 d:apachehtdocsgif2.php3에 있는 imagearc.
프로그램은 다음과 같습니다.
<?
dl("php_gd_gif.dll");
header("콘텐츠 유형:이미지/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, "이것은 Gif입니다.", $white);
imagegif($im);
imagedestroy($im);
?>
해결책: 프로그램이나 php.ini를 수정하세요.
dl() 함수는 dll을 로드하는 데 사용되지만 php.ini 파일에서 필요한 dll 앞의 ";"이 제거된 경우 지금은 이 함수를 사용하지 마십시오.
ini 파일에서 Extension=php_gd_gif.dll 앞의 ";"가 제거되지 않은 경우 dl("php_gd_gif.dll")을 사용하여 이를 로드해야 합니다. 그렇지 않으면 서버가 다릅니다. 중복된 이름이라고 생각하게 됩니다.