我有一个代码
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
$ret = curl_exec($ch);
$responseCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
Run Code Online (Sandbox Code Playgroud)
现在我想从没有标题的$ ret中提取身体.知道怎么做吗?
小智 38
raina77ow的反应很好.从评论看起来有一些条件会导致"爆炸"不起作用.我发现了一种对我来说更好的方式并且认为我会分享.
通过调用curl_getinfo($ ch,CURLINFO_HEADER_SIZE),您可以获得响应头的长度.所以我做了以下事情:
// Original Code
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
$ret = curl_exec($ch);
$responseCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// Added Code
$header_len = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$header = substr($ret, 0, $header_len);
$body = substr($ret, $header_len);
// Back to Original Code
curl_close($ch);
Run Code Online (Sandbox Code Playgroud)
这对我很有用.我希望它可以帮助别人.
rai*_*7ow 21
这个怎么样:
list($headers, $content) = explode("\r\n\r\n", $ret, 2);
Run Code Online (Sandbox Code Playgroud)
...应该在$ content变量中为您提供请求的正文?
| 归档时间: |
|
| 查看次数: |
14282 次 |
| 最近记录: |