我有一个PHP脚本,在执行它时会抛出错误。
警告:file_get_contents():文件名在第68行的C:\ Apache24 \ htdocs \ image \ test2.php中不能为空。
警告:exif_imagetype():在第72行的C:\ Apache24 \ htdocs \ image \ test2.php中,文件名不能为空。
基本上脚本显示来自rss feed的图像,但问题不是只显示其中的一些图像。
这是脚本
error_reporting(E_ALL);
ini_set("display_errors", 1);
$url = "http://www.sahafah.net/rss.php";
$rss = file_get_contents($url);
ini_set('mbstring.substitute_character', "none");
$rss1= mb_convert_encoding($rss, 'UTF-8', 'UTF-8');
$rss3 = simplexml_load_string($rss1);
if($rss3)
{
$items = $rss3->channel->item;
foreach($items as $item)
{
$title = $item->title;
$link = $item->link;
$published_on = $item->pubDate;
$description = $item->description;
$category = $item->category;
$guid = $item->guid;
$string2 = $item->description;
preg_match('/http.*.jpg/',$string2,$match2);
$convert = implode(",", $match2);
// Read image path, convert to base64 encoding
$imageData = base64_encode(file_get_contents($convert));
// Format the image SRC: data:{mime};base64,{data};
$src = 'data: '.exif_imagetype($convert).';base64,'.$imageData;
// Echo out a sample image
echo '<img src="', $src, '">';
}
}
答案 0 :(得分:1)
像许多PHP问题一样,答案是你的代码实际上没有任何问题。您所看到的并不是一个错误它是一个警告,这些将在生产中被抑制,您的代码将正常工作。修复警告/通知是一个良好的做法问题,无论你是否打扰,真的由你决定。但是,如果你想摆脱它们,你可以用file:[/ p>包装任何file_get_contents
if(file_exists($convert)){
// Read image path, convert to base64 encoding
$imageData = base64_encode(file_get_contents($convert));
// Format the image SRC: data:{mime};base64,{data};
$src = 'data: '.exif_imagetype($convert).';base64,'.$imageData;
// Echo out a sample image
echo '<img src="', $src, '">';
}
或者,如果您不关心警告和通知,您可以在代码顶部执行以下操作:
error_reporting(E_ERROR);
这意味着打印到屏幕上的唯一内容将是实际错误,您不必受到警告和通知的干扰。