开发者

Using PHP, how can I read a server's error page?

I want to read a server's reply for a certain request, modify it to my needs, and send it to开发者_如何学Go the site visitor. get_headers() works perfectly for the headers, but if the requested file is missing (404), and that's exactly what I want to use, get_file_contents(), readfile() and other functions I've tried all break with the warning/error that the file is missing instead of reading the replied stream into a variable.

So what I want is a function similar to get_headers() only for the rest of the data, like a get_data() that doesn't cancel. Is there such a thing?

Thanks for reading.


Use curl_exec. It will always return the body unless the CURLOPT_FAILONERROR option is set to TRUE.

Here's an example:

$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);

Wrap this in a function and use it wherever you need to get an HTTP response body in your application.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜