函数file_exists在php中不起作用

时间:2012-07-09 09:12:17

标签: php html

我一直试图找到目录中的file_exist。如果不是我想使用不同的图像。但是当我使用file_exists函数时,它总是返回false。

我使用的代码是

while($r=mysql_fetch_row($res))
    {  
        if(!file_exists('http://localhost/dropbox/lib/admin/'.$r[5]))
            {
                $file='http://localhost/dropbox/lib/admin/images/noimage.gif';
            }
        else
            $file='http://localhost/dropbox/lib/admin/'.$r[5];}

但即使文件退出,该函数也总是返回false。我用

检查了一下
<img src="<?php echo 'http://localhost/dropbox/lib/admin/'.$r[5]; ?>" />

这样可以正确显示图像。

请有人帮助我

6 个答案:

答案 0 :(得分:2)

file_exists使用文件系统路径,而不是网址。您可以在浏览器中使用URL通过网络上的Web浏览器和Web服务器访问PHP脚本。 PHP脚本本身可以访问本地文件系统并使用它,它不会通过网络堆栈来访问文件。

所以请使用类似file_exists('C:\\foo\\bar\\dropbox\\lib\\admin\\' ...)的内容。

答案 1 :(得分:0)

file_exists不支持使用HTTP的地址(您可以看到这一点,因为the list of wrappers supported over HTTP上未包含stat)。正如file_exists文档所述,可以使用某些包装器(例如FTP)检查远程文件,但不能通过HTTP检查远程文件,因此file_exists将始终返回false。

假设此文件位于本地计算机上(由localhost建议),您需要使用本地文件路径访问它。很难猜测这可能是什么,但它可能看起来像/var/www/dropbox...

答案 2 :(得分:0)

file_exists()检查本地文件系统中是否存在文件。你正在传递一个URL。将其更改为您的Dropbox目录的本地路径,它应该工作:

if(file_exists('/path/to/your/dropbox'))

答案 3 :(得分:0)

函数file_exists只适用于PHP中stat()函数支持的URL协议。

目前,此包装器不支持http协议。

http://uk3.php.net/manual/en/wrappers.http.php

答案 4 :(得分:0)

您正在将URL传递给file_exists函数,这是一个错误的参数。而不是通过那里的本地路径。

要了解有关file_exist()函数的更多信息,请阅读此php手册:

http://php.net/manual/en/function.file-exists.php

答案 5 :(得分:0)

您正在将URL传递给file_exists函数,这是错误的。而不是传递文件夹的本地路径。

while($r=mysql_fetch_row($res))
{  
 if(!file_exists('/dropbox/lib/admin/'.$r[5]))
 {
  $file='/dropbox/lib/admin/images/noimage.gif';
 }
 else
 $file='/dropbox/lib/admin/'.$r[5];
}