【发布时间】:2017-08-02 01:11:21
【问题描述】:
这段代码从 RSS 提要中读取,并应检测服务器上是否存在图像:
<?php
$feedURL = 'http://www.goapr.com/news/category/product-release/feed/';
$sxml = @simplexml_load_file($feedURL);
if($sxml){
$i=0;
foreach($sxml->channel as $channel){
foreach($channel->item as $item){
//if($i==6){break;}
if($item->prodimg=="~"){break;}
if($item->prodpage=="~"){break;}
$i += 1;
$file = 'http://www.goapr.co.uk'. $item->prodimg;
if (file_exists($file)) {
echo "The file $file exists";
} else {
echo "The file $file does not exist";
}
}
}
}else{
echo 'Sorry there was an error. The recent products will return shortly.';
}
?>
许多图像确实存在,但它返回所有未找到的图像:
文件http://www.goapr.co.uk/includes/img/newprod/ultras4.png不存在文件http://www.goapr.co.uk/includes/img/newprod/30tpulleys.png不存在文件http://www.goapr.co.uk/includes/img/newprod/tiguan.png不存在文件http://www.goapr.co.uk/includes/img/newprod/2325row.png不存在文件http://www.goapr.co.uk/includes/img/newprod/plus.png不存在文件http://www.goapr.co.uk/includes/img/newprod/2017r.png不存在文件http://www.goapr.co.uk/includes/img/newprod/v24gti.png不存在文件http://www.goapr.co.uk/includes/img/newprod/q5gen3.png 不存在文件http://www.goapr.co.uk/includes/img/newprod/s8downpipes.png 不存在文件http://www.goapr.co.uk/products/ 所有图像都被检测为未找到。
它与:How to check if a file exists from a url 不同,因为这些文件与此 PHP 页面位于同一文件系统上。
【问题讨论】:
-
file_exists 仅适用于本地文件系统。我个人使用 cURL 打开连接并获取信息并检查响应是否为 404,但通常检查
fopen是否成功就足够了。 -
您好,谢谢。这些文件与这个 PHP 页面在同一个文件系统上,这有帮助吗?
-
您需要通过它们的本地路径而不是 URL 来检查它们,然后例如
$_SERVER["DOCUMENT_ROOT"]."path/to/pictures/"...
标签: php