函数 file_exists 不起作用

Posted

技术标签:

【中文标题】函数 file_exists 不起作用【英文标题】:function file_exists does not work 【发布时间】:2014-08-05 14:38:45 【问题描述】:

在我的 webroot 中,我有一个名为 exists.php 的文件,其中是用于检查文件是否存在的代码:

$filename = 'http://www.domain.nl/contact.php';
if (file_exists($filename))
    
        echo "Document ".$filename." found...<br><br><br>";
    
    else
    
        echo "Document ".$filename." not found...<br><br><br>";
    ;

contact.php 文件确实存在,但在调用 exists.php 时,他回显:找不到文档 将代码更改为此:

$filename = 'contact.php';
if (file_exists($filename))
    
        echo "Document ".$filename." found...<br><br><br>";
    
    else
    
        echo "Document ".$filename." not found...<br><br><br>";
    ; 

然后它回显:找到文档。

为什么这不适用于绝对路径?

【问题讨论】:

阅读手册php.net//manual/en/function.file-exists.php 一个可能的解决方案是发出一个 http 请求(可能使用 curl)并检查 http 状态码是否为 != 404 ... 不能有跨域文件 【参考方案1】:

file_exists() 仅适用于支持 stat 函数的流包装器。

这些包括:

file:// ftp:// php://内存 php://temp phar:// ssh2.sftp rar://

不支持http://

【讨论】:

你忘记了ftp://(PHP 5.0 起)。 实际上 php://temp 和 php://memory 不起作用。并不是说它们不能被说明,而是它们的抽象工作方式没有什么可统计的,除非文件句柄在附近。因此,虽然需要接受文件句柄的“stat”的文件函数将起作用。采用类似 file_exists 路径的那些不会。

以上是关于函数 file_exists 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

使用 .htaccess 重写规则时 PHP 函数 file_exists 不起作用

为啥 file_exists() 不起作用?

file_exists() 在 while 循环内的 php5 中不起作用

PHP file_exists 不起作用。似乎在颠倒真假

file_exists() 不起作用,但是当在浏览器中给出图像的 url 时,会显示图像

PHP file_exists 在文档根目录之外不起作用