PHP 4.0.5 (Win32) + Apache 1.3.12 (Win32)
現象:瀏覽器長時間等待,無錯誤輸出。
原因:extension_dir 配置錯誤,擴展載入失敗導致阻塞。
解決:修正 php.ini:
extension_dir = C:\php\extensions ; 必須指向實際 extensions 目錄
關鍵:修改 PHP 安裝目錄下的 php.ini,而非系統目錄副本。
ImageGif: No GIF support in this PHP build現象:調用 imagegif() 報警告。
原因:PHP 4.0.4 版本 php_gd.dll 不包含 GIF 支持,缺少 php_gd_gif.dll。
解決:升級至 PHP 4.0.5+,包含 php_gd_gif.dll。
Function registration failed - duplicate name - imagearc現象:腳本啟動即報錯。
代碼:
<?php
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 中已啟用 extension=php_gd_gif.dll,代碼中又調用 dl() 重複載入。
解決:二選一:
php.ini 啟用擴展,代碼刪除 dl()php.ini 註釋擴展,代碼保留 dl()原則:靜態載入 (extension=) 與動態載入 (dl()) 互斥,不可同時存在。
<?php
// php.ini 已啟用 extension=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 4 已停止維護,現代項目請使用:
imagecreatetruecolor() 替代 imagecreate()(真彩色)intervention/image、gregwar/image 面向對象封裝