如何使用file_get_contents在变量中获取HTTP状态

时间:2015-12-26 07:08:59

标签: php

我有脚本:

<?php
  $url = file_get_contents("http://www.example.com");
  if(HTTP_STATUS == "404")
   {
     echo "Status : 404";
   }
 ?>

如何在IF中变量以便我可以跟踪http status?  
 因此,如果HTTP状态为404,则echo "Status : 404"

3 个答案:

答案 0 :(得分:2)

调用A^B == A~B + ~AB后,可以在变量$http_response_header中找到HTTP响应:

file_get_contents

答案 1 :(得分:0)

使用get_headers()

$file = 'http://www.example.com';
$file_headers = @get_headers($file);
if($file_headers[0] == 'HTTP/1.1 404 Not Found') {
    echo "Status : 404";
}

阅读http://php.net/manual/en/function.get-headers.php

答案 2 :(得分:0)

萨蒂的答案是写的,我也建议使用curl,在curl_exec之后,您可以使用curl_getinfo获取所有信息

来自同一链接的示例:

<?php
// Create a curl handle
$ch = curl_init('http://www.example.com/');

// Execute
curl_exec($ch);

// Check if any error occurred
if(!curl_errno($ch))
{
 $info = curl_getinfo($ch);

 echo 'Took ' . $info['total_time'] . ' seconds to send a request to ' . $info['url'];
 echo 'HTTP STATUS CODE: ' . $info['http_code'];
}

// Close handle
curl_close($ch);
?>

可以使用设置CURLOPT_RETURNTRANSFER true使用curl_setopt从curl_exec获取结果。

示例:

<?php
// Create a curl handle
$ch = curl_init('http://www.example.com/');

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// Execute
$result = curl_exec($ch);

// Check if any error occurred
if(!curl_errno($ch))
{
 $info = curl_getinfo($ch);

 echo 'Took ' . $info['total_time'] . ' seconds to send a request to ' . $info['url'];
 echo 'HTTP STATUS CODE: ' . $info['http_code'];
}

// Close handle
curl_close($ch);

// use $result
var_dump($result);
?>