我对这个错误非常恼火:
如果我注释掉
require_once'../class/myclass.class.php';
显示图像。 如果我取消注释我调用myclass.class.php的行,我会收到以下消息:
"The image "http://..." cannot be displayed because it contains errors."
我的代码很简单:
myclass.class.php:
<?php
class myclass {
public function getPanelData( $model ){
$aFieldsData = array(
'PAN35'=>array(
'col'=>1,
'row'=>3,
'v-font'=>10,
'v-marge-top'=>0,
'v-marge-right'=>1,
'v-marge-bottom'=>0,
'v-marge-left'=>1
)
);
if( key_exists($model, $aFieldsData) )
return $aFieldsData[$model];
else
return false;
}
}
?>
img.inc.php:
<?php
session_start();
require_once('myfunctions.inc.php');
require_once('../class/myclass.class.php');
$oData = new myclass();
header('Content-Type: image/png');
$sPanelModel = $_SESSION['produit'];
$sEtiquette = '../img/etiquettes/label_'.$sPanelModel.'_preview.png';
$rImg = imagecreatefrompng($sEtiquette);
imagepng($rImg);
imagedestroy($rImg);
?>
注意:如果我评论require_once调用myclass.class.php,则此代码有效。 调用functions.inc.php有效(只有少数几个函数)。
tree :
/
+ class
+ myclass.class.php
+ inc
+ functions.inc.php
+ img.inc.php
+ images
+ etiquettes
答案 0 :(得分:3)
如果通过取消注释myclass.class.php的require()来确定它是正确的,那么最可能的原因是此文件在<?php
之前或{{1}之后包含空行(空格) }}。这会将Ascii字符添加到图像的输出中,或者在header()语句中插入php错误消息(Headers无法发送),从而弄乱您的文件。
但是,正如我在评论中提到的,如果您的唯一目的是输出图片,则可以使用readfile()而不是创建图像实例。
希望有所帮助,
斯蒂芬