2010-10-02 212 views
0

嘿;目前我使用的是检查是否在服务器上存在的图像的方式如下:PHP:检查服务器上是否存在文件

if (@getimagesize($s3url)) 
    { 
     //do stuff 
    } 

不用说,这是很难这样做的最优雅的方式......不过说实话,我真的不知道从哪里开始寻找更好的解决方案。

我想知道是否有可能发送请求,接收HTTP响应(即,如果HTTP响应是200,继续,如果不是,则评估为false);但那是最好的方法吗?

检查(图像)文件是否存在的最佳功能是什么?

+1

要检查内容是否存在于外部服务器上,必须使用HTTP检查完成,而不是诸如文件大小等功能,因为它们打开本地服务器上的资源。 – RobertPitt 2010-10-02 20:02:45

回答

4

file_exists()然后检查文件是否真的是一个图像或不使用和getimagesize()

0

这个怎么样

if(filesize($url)) 
{ 
} 

这样的话,你是不是触发GD操作方法。

+0

'getimagesize'不是GD操作(尽管你需要完整的文件) – 2010-10-02 19:57:37

2

我'm不确定file_exists是否适用于远程网址,因此您更安全地使用此网址:

function url_exists($url) { 
    $handle = curl_init($url); 

    curl_setopt($handle, CURLOPT_HEADER, false); 
    curl_setopt($handle, CURLOPT_FAILONERROR, true); 
    curl_setopt($handle, CURLOPT_NOBODY, true); 
    curl_setopt($handle, CURLOPT_RETURNTRANSFER, false); 
    $connectable = curl_exec($handle); 
    curl_close($handle); 
    return $connectable; 
} 
相关问题