PHP文件检查总是返回false

时间:2017-03-11 19:25:41

标签: php

这段代码从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页面位于同一文件系统中。

1 个答案:

答案 0 :(得分:1)

如果您需要检查本地文件系统上是否存在文件,您应该通过它的本地路径而不是其URL来引用它,例如:

$file = $_SERVER["DOCUMENT_ROOT"]."/path/to/images/".$item->prodimg; 

请注意,DOCUMENT_ROOT是网络服务器主机设置的根路径(这意味着它可能无法在命令行中使用。

如果图像与当前运行的脚本位于同一目录中,您也可以使用__DIR__."/".$item->prodimg