使用php动态生成gif时遇到的问题和解决办法
时间:2007-02-17 来源:PHP爱好者
PHP没有规定只输出HTML文件,它可以生成动态gif文件。我在使用PHP动态生成gif图像时遇到了一些问题,现已解决,我用的是PHP4.05(for win32) apache3.1.2_win32。 问题一:动态生成gif的程序根本转不起来
我写了一个关于用PHP生成gif的例子,运行,发现页面就是刷不出来,就象是死了一样,浏览器也没有任何错误提示。 解决办法:修改PHP所在目录下的PHP.ini 通过奥索网会员selo帮助,告诉我是要修改安装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");加载,总之:此两者是互异的,不然服务器认为是重复命名。
非常全面的一个php技术网站,php爱好者站 http://www.phpfans.net 有相当丰富的文章和源代码.
我写了一个关于用PHP生成gif的例子,运行,发现页面就是刷不出来,就象是死了一样,浏览器也没有任何错误提示。 解决办法:修改PHP所在目录下的PHP.ini 通过奥索网会员selo帮助,告诉我是要修改安装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");加载,总之:此两者是互异的,不然服务器认为是重复命名。
非常全面的一个php技术网站,php爱好者站 http://www.phpfans.net 有相当丰富的文章和源代码.
相关阅读 更多 +