使用PHP检查是否存在远程文件

时间:2012-07-26 08:29:49

标签: php xml curl fopen

我正在尝试找到一个最佳解决方案,以便从性能,内存使用等中进行保存,以检查文件是否存在于不同的域中。就我而言,该文件是 XML ,大​​小可以介于 10KB到10MB 之间。

哪些最适合使用?如果你有更好的方法,我会乐意使用它。

由于

CURL

$ch = curl_init("http://www.example.com/hello.xml");

curl_setopt($ch, CURLOPT_NOBODY, true);
curl_exec($ch);
$retcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// $retcode > 400 -> not found, $retcode = 200, found.
curl_close($ch);

FOPEN

$url = "http://www.example.com/hello.xml";

if (@fopen($url, "r")) {
   echo "File Exists";
} else {
   echo "Can't Connect to File";
}

1 个答案:

答案 0 :(得分:1)

$opts = array('http' =>
  array(
    'method'  => 'HEAD'
  )
);

$context  = stream_context_create($opts);

$result = fopen('http://example.com/submit.php', 'rb', false, $context);

Example taken (but shortened) from the manual

然后使用stream_get_meta_data()来获取响应标头,例如

$meta = stream_get_meta_data($result);
var_dump($meta['wrapper_data']);