我想阅读服务器对某个请求的回复,根据我的需要进行修改,然后将其发送给网站访问者。 get_headers()完全适用于头文件,但如果请求的文件丢失(404),这正是我想要使用的,get_file_contents(),readfile()和其他我尝试过的函数都会突破警告/错误该文件丢失而不是将回复的流读入变量。
所以我想要的是一个类似于get_headers()的函数,仅用于其余的数据,比如不取消的get_data()。有这样的事吗?
感谢阅读。
答案 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响应主体。