【发布时间】:2018-05-07 22:22:18
【问题描述】:
运行脚本时出现以下错误
php cannot be displayed because it contains errors
脚本,获取文件,调整大小,将其输出到屏幕和文件。
url_example:localhost/testimage.php?img=img_592_121_200.jpg
我已阅读大多数帖子并尝试了建议的解决方案。全部失败
文件不会输出到屏幕/浏览器,但可以保存到文件中。
这是代码,我去掉了所有的空白和空行。并在脚本中硬编码文件名
**我开始怀疑这是我的设置,但我什至不确定如何/从哪里开始寻找
编辑:简化为仅输出到屏幕
testimage.php
<?php
//session_start();
//ob_start();
ini_set("display_errors", "1");
error_reporting(E_ALL);
Header('Content-type:image/jpeg');
//$cacheFile="mypicXXX.jpg";
//$cache_dir="cache/1/592/";
$img_dir="webspace/1/592/";
$img="img_592_121.jpg";
$id="$img_dir$img";
$src=imagecreatefromjpeg($id);
$new_width=200;
$new_height=77;
$width=600;
$height=1001;
$w_src=600;
$h_src=1001;
$img=imagecreatetruecolor($new_width,$new_height);
imagecopyresampled($img,$src,0,0,0,0,$new_width,$new_height,$w_src,$h_src);
imagejpeg($img,NULL,45);
//$cacheFile=$cache_dir.$cacheFile;
//imagejpeg($img,$cacheFile,45);
imagedestroy($src);
imagedestroy($img);
//ob_end_flush();
?>
【问题讨论】:
-
那么,您到底尝试了什么?第一个建议应该是删除
header()行并查看可能显示的错误消息。 -
你关闭
ob_start()开始的输出缓冲区了吗?另一种情况是错误消息看起来很奇怪。尝试在页面顶部添加error_reporting( E_ALL ); ini_set( 'display_errors', 1 ) -
我尝试删除标题行,屏幕只是显示乱码。我尝试删除 ob_start,尝试过 Error_reporting 没有生成/显示我读过的任何错误,这些错误与 imagejpeg($img,'',45); 中的 '' 不一样;所以我将它设置为 imagejpeg($img,NULL,45);,没有帮助
-
还有一点我要提的是,这个脚本以前可以工作。我今天才注意到它不起作用。大约一个月前,我升级到 PHP 版本 5.4.7,Apache 2.4,捆绑的 GD 版本(兼容 2.0.34)这是在我的本地主机上运行,家用计算机 windowsXP
标签: php image gd dynamic-image-generation