如何在收到503或404标题时获取内容

时间:2012-01-11 05:58:00

标签: php curl

有时,HTTP 404来自响应中的标题 - 可能有响应内容(通常是自定义错误404页面)或Google.com浏览器中的页面503将显示验证码,允许用户写入字母。

Google Error Page http://goohackle.com/imgs/google_error.jpg

如果我在浏览器中访问404页面,则只会加载自定义错误404页面的内容。 但是在PHP中,cURL没有显示与浏览器相同的内容。

当标题返回404或503页面时,我可以使用cURL获取内容吗?

例如代码我在www.example.com/show503.php

中创建了显示503错误的页面
header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Status: 503 Service Temporarily Unavailable');
header('Retry-After: 7200'); // in seconds
print "This message will show only browser";

当我使用此代码卷曲到www.example.com/show503.php时

$ch = curl_init('www.example.com/show503.php');
$ret = curl_exec($ch);
curl_close($ch);
var_dump($ret);

它获取NULL值无法获取内容“此消息仅显示浏览器”。

3 个答案:

答案 0 :(得分:3)

你没有设置CURLOPT_RETURNTRANSFER,所以无论如何你都不会得到任何东西。

这应该有效:

$ch = curl_init('www.example.com/show503.php');
curl_setopt($ch ,CURLOPT_RETURNTRANSFER,true);
$ret = curl_exec($ch);
curl_close($ch);
var_dump($ret);

答案 1 :(得分:3)

对于简单的文本提取,您可以使用file_get_contents方法。

答案 2 :(得分:1)

我认为你需要

curl_setopt($ch ,CURLOPT_HTTP200ALIASES,array(404,503));

http://php.net/manual/en/function.curl-setopt.php:)