使用PHP,我如何读取服务器的错误页面?

时间:2011-08-18 16:47:02

标签: php function

我想阅读服务器对某个请求的回复,根据我的需要进行修改,然后将其发送给网站访问者。 get_headers()完全适用于头文件,但如果请求的文件丢失(404),这正是我想要使用的,get_file_contents(),readfile()和其他我尝试过的函数都会突破警告/错误该文件丢失而不是将回复的流读入变量。

所以我想要的是一个类似于get_headers()的函数,仅用于其余的数据,比如不取消的get_data()。有这样的事吗?

感谢阅读。

1 个答案:

答案 0 :(得分:2)

使用curl_exec。除非CURLOPT_FAILONERROR选项设置为TRUE,否则它将始终返回正文。

以下是一个例子:

$url = 'http://www.example.com/thisrequestwillerror';

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, false);

// This is the default, but just making sure...
curl_setopt($curl, CURLOPT_FAILONERROR, false);

// Execute and return as a string
$str = curl_exec($curl);

curl_close($curl);

// Dump the response body
var_dump($str);

将其包装在一个函数中,并在需要的地方使用它来获取应用程序中的HTTP响应主体。