使用PHP動態生成gif時遇到的問題和解決辦法
PHP沒有規定只輸出html文件,它可以生成動態gif文件。我在使用php動態生成gif圖像時遇到了一些問題,現已解決,我用的是php4.05(for win32)+apache3.1.2_win32。
問題一:動態生成gif的程序根本轉不起來 我寫了一個關于用php生成gif的例子,運行,發現頁面就是刷不出來,就象是死了一樣,瀏覽器也沒有任何錯誤提示。
解決辦法:修改php所在目錄下的php.ini
修改安裝php所在路徑下的php.ini(注意:一定是php路徑下的php.ini)extension_dir = 安裝php的路徑extensions(比如:c:phpextensions)。
問題二:php_gd.dll不支持gif
我在程序的開頭加載了php_gd.dll動態連接庫:dl('php_gd.dll');但是在運行程序的時候,出現了這樣的結果:
<br><b>Warning</b>:; ImageGif: No GIF support in this PHP build in <b>d:apachehtdocsgif2.php3</b> on line <b>12</b><br>。
解決辦法:使用php4.05 這時我才發現是書上寫的問題php_gd.dll根本不能支持生成gif,經高人指引才知道自己的版本php4.04 for win32缺少php_gd_gif.dll,于是我下載了一份更高版本的php4.05,這里面有支持生成動態gif的php_gd_gif.dll。
問題三:出現警告:Warning: Function registration failed - duplicate name - imagearc in d:apachehtdocsgif2.php3 on line 3
程序如下:<?dl('php_gd_gif.dll');header('content-type:image/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, 'This is a Gif', $white);imagegif($im);imagedestroy($im);?>
解決辦法:修改程序或者php.ini; dl()函數是用來加載dll的,但如果在php.ini文件中將所需要的dll前面的“;”已經去掉的話,那么這時就不要使用這個函數。 如果ini文件中extension=php_gd_gif.dll前的“;”沒有去,那么就要用dl('php_gd_gif.dll');加載,總之:此兩者是互異的,不然服務器認為是重復命名。