有没有办法检查另一台PHP服务器上是否存在文件?

时间:2011-09-18 14:23:02

标签: php

我尝试了is_file(),但似乎无法检查远程文件。我需要检查我的图像服务器上是否有书架图像,如果它不存在,我将使用另一个。除了is_file?

之外,有什么替代方法可以做到这一点

3 个答案:

答案 0 :(得分:2)

您可以尝试使用curl检索它并检查您是否获得了404或实际点击?

答案 1 :(得分:0)

你可以试试这样的事情

if (getimagesize($url))
    echo "An image found!"

由于getimagesize将检查返回图像的大小,失败时返回false。

答案 2 :(得分:0)

尝试此功能:

 function fileExists($path){
    return (@fopen($path,"r")==true);
  }

或者我在我的网站上使用此功能来检查图像链接是否有效/仍然存在。这更好,因为它特定于图像。这也是fopen。

    function isImage($url)
{
 $params = array('http' => array(
              'method' => 'HEAD'
           ));
 $ctx = stream_context_create($params);
 $fp = @fopen($url, 'rb', false, $ctx);
 if (!$fp) 
    return false;  // Problem with url

$meta = stream_get_meta_data($fp);
if ($meta === false)
{
    fclose($fp);
    return false;  // Problem reading data from url
}