1

运行脚本时出现以下错误 php cannot be displayed because it contains errors

该脚本获取一个文件,调整其大小并将其输出到屏幕和一个文件。

url_example:localhost/testimage.php?img=img_592_121_200.jpg

我已经阅读了大多数帖子并尝试了建议的解决方案。全部失败

该文件不会输出到屏幕/浏览器,但可以保存到文件中。

这是代码,我去掉了所有的空白和空行。并在脚本中硬编码文件名

**我开始怀疑这是我的设置,但我什至不确定如何/从哪里开始寻找

编辑:简化为仅输出到屏幕

测试图像.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();
?>
4

2 回答 2

1

固定的。修复(至少对我而言)是将文件保存为"UTF-8 - NO NOM"。在我将其命名为“UTF-8”之前

这整个文件格式让我迷失了,我需要在这些日子里阅读它

谢谢大家的帮助!!!

于 2013-02-17T20:51:23.607 回答
0

您是否检查过在标头之前没有发送任何输出?您可以尝试几件事:

  1. 将 header() 函数移到顶部。
  2. 删除缓存(ob_start),看看你是否可以在没有它的情况下让它工作。
  3. 当你使用 ob_start 时,我猜你也想使用 ob_end_flush(); 在最后?
  4. 尝试使用 NULL 作为 imagejpeg() 的第二个参数来执行 RAW 输出而不是写入文件。(可能与写权限有关)

更新 您确定您检查了您指向的文件是否存在/或路径是否有效?这适用于我的本地主机,运行默认的 xamp 安装(PHP3.5.1)

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="test.jpg";
$src=imagecreatefromjpeg($img);
$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);
于 2013-02-17T10:04:54.650 回答