这段代码从RSS源读取,shoulfd检测服务器上是否存在图像:
<?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页面位于同一文件系统中。
答案 0 :(得分:1)
如果您需要检查本地文件系统上是否存在文件,您应该通过它的本地路径而不是其URL来引用它,例如:
$file = $_SERVER["DOCUMENT_ROOT"]."/path/to/images/".$item->prodimg;
请注意,DOCUMENT_ROOT
是网络服务器主机设置的根路径(这意味着它可能无法在命令行中使用。
如果图像与当前运行的脚本位于同一目录中,您也可以使用__DIR__."/".$item->prodimg
。