file_exists始终为false

Jam*_*mes 0 php file-exists

$var = "http://site.com/image.png";

if (file_exists($var))
    echo 'yes';
else
    echo 'no';
Run Code Online (Sandbox Code Playgroud)

为什么这个脚本总是返回false

pax*_*blo 10

因为那不是一个文件,而是一个URL.

直到PHP5,该file_exists函数用于检测文件或目录是否存在.

在PHP5中,引入了支持以允许支持某些URL包装器,如本页中的注释所示:

提示:从PHP 5.0.0开始,此函数也可以与某些URL包装器一起使用.请参阅支持的协议和包装器以确定哪些包装器支持stat()系列功能.

该包装的详细位置,但不幸的是,http一个不支持stat,一个先决条件,允许file_exists工作.

如果您在服务器上运行,则可以使用它来转换它,$_SERVER['DOCUMENT_ROOT']或者找到另一种方法在文件系统上找到它.