【发布时间】:2015-03-08 17:07:05
【问题描述】:
我有一个 PHP 脚本在执行时抛出错误。
警告:file_get_contents(): Filename cannot be empty in C:\Apache24\htdocs\image\test2.php on line 68`
警告:exif_imagetype(): Filename cannot be empty in C:\Apache24\htdocs\image\test2.php on line 72`
基本上,脚本会显示来自 rss 提要的图像,但问题不是只显示所有图像。
这是脚本
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, '">';
}
}
【问题讨论】:
-
第 68 行和第 72 行是哪一行?每当我在午餐时遇到错误时,我都会检查线路,但如果没有数字,还不如回到我的三明治
-
我可以猜到,但它有助于显示线条。显然,您的 $convert 末尾没有文件。当 file_get_contents 返回 false 时捕获 $convert 并检查它以确认它们最后不是没有文件
-
@Mike Miller 这里是第 68 行
$imageData = base64_encode(file_get_contents($convert));和第 72 行$src = 'data: '.exif_imagetype($convert).';base64,'.$imageData; -
"$convert = implode(",", $match2);" - 你显然在这里组装了一个数组,当然php找不到那个文件名..
-
@ Zencode.dk,我必须从数组转换为字符串,这就是为什么我使用
$convert = implode(",", $match2);
标签: php