PHP:检查服务器上是否存在文件

PHP:检查服务器上是否存在文件,php,Php,哎,;我目前正在使用以下方法检查服务器上是否存在映像: if (@getimagesize($s3url)) { //do stuff } 不用说,这并不是最优雅的方式。。。但老实说,我不知道从哪里开始寻找更好的解决方案 我想知道是否可能只发送一个请求,接收一个HTTP响应(即,如果HTTP响应是200,则继续,如果不是,则计算为false);但这是最好的办法吗 检查(图像)文件是否存在的最佳功能是什么 然后使用getimagesize()检查文件是否真的是图像然后

哎,;我目前正在使用以下方法检查服务器上是否存在映像:

if (@getimagesize($s3url))
   { 
      //do stuff 
   }
不用说,这并不是最优雅的方式。。。但老实说,我不知道从哪里开始寻找更好的解决方案

我想知道是否可能只发送一个请求,接收一个HTTP响应(即,如果HTTP响应是200,则继续,如果不是,则计算为false);但这是最好的办法吗

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

然后使用getimagesize()检查文件是否真的是图像

然后使用getimagesize()检查文件是否真的是图像

如何

if(filesize($url))
{
}
这样,您就不会触发GD操作了。

这个怎么样

if(filesize($url))
{
}

这样,您就不会触发GD操作了。

我不确定文件_exists是否适用于远程URL,因此您可以更安全地使用此文件:

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;
}

我不确定文件_exists是否适用于远程URL,因此您可以更安全地使用此文件:

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;
}

getimagesize
不是GD操作(尽管您需要完整的文件)
getimagesize
不是GD操作(尽管您需要完整的文件)来检查外部服务器上是否存在内容,它必须通过HTTP检查来完成,而不是使用文件大小等功能,当它们打开本地服务器上的资源时。若要检查外部服务器上是否存在内容,必须使用HTTP检查,而不是文件大小等功能,因为它们打开本地服务器上的资源。