【问题标题】:PHP File checking always returning falsePHP 文件检查总是返回 false
【发布时间】: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


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2015-10-20
    • 1970-01-01
    • 1970-01-01
    • 2013-08-13
    • 2021-06-24
    • 2011-05-07
    • 2020-12-27
    • 2014-08-26
    • 2012-08-23
    相关资源
    最近更新 更多