3
A
回答
2
在行的开头搜索“HTTP/1.1 200 OK”的输出 - 这是您最后一次请求开始的位置。所有其他人将提供其他HTTP返回码。
2
这里的另一种方式:
$url = 'http://google.com';
$opts = array(CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HEADER => true);
$ch = curl_init($url);
curl_setopt_array($ch, $opts);
$response = curl_exec($ch);
$redirect_count = curl_getinfo($ch, CURLINFO_REDIRECT_COUNT);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$response = explode("\r\n\r\n", $response, $redirect_count + 2);
$last_header = $response[$redirect_count];
if ($status == '200') {
$body = end($response);
} else {
$body = '';
}
curl_close($ch);
echo '<pre>';
echo 'Redirects: ' . $redirect_count . '<br />';
echo 'Status: ' . $status . '<br />';
echo 'Last response header:<br />' . $last_header . '<br />';
echo 'Response body:<br />' . htmlspecialchars($body) . '<br />';
echo '</pre>';
当然,你需要更多的错误检查,如超时等
0
执行您的要求
拿表头长度从
curl_getinfo
s返回值检索之间的部分的最后
\r\n\r\n
(但在头年底前)和标题的末尾作为最后一个头
// Step 1: Execute
$fullResponse = curl_exec($ch);
// Step 2: Take the header length
$headerLength = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
// Step 3: Get the last header
$header = substr($fullResponse, 0, $headerLength - 4);
$lastHeader = substr($header, (strrpos($header, "\r\n\r\n") ?: -4) + 4);
当然,如果你有PHP < 5.3你必须展开elvis operator到一个if/else构造。
0
迟到的答案,但也许更简单的方法来;
$result = explode("\r\n\r\n", $result);
// drop redirect etc. headers
while (count($result) > 2) {
array_shift($result);
}
// split headers/body parts
@ list($headers, $body) = $result;
相关问题
- 1. 使用cURL获取重定向URL
- 2. 使用curl获取最终的重定向状态代码PHP
- 3. 标题()函数重定向?
- 4. PHP cURL:获取重定向目标,但不关注它
- 5. 使用cURL php高级重定向
- 6. 使用标题PHP URL重定向
- 7. php使用标题重定向
- 8. 如何使用ob_start在PHP中的标题位置重定向?
- 9. php curl - 如何获得简单的页面重定向
- 10. CURL获取函数的问题
- 11. curl被重定向后获取url
- 12. 如何使用JavaScript获取URL的重定向目标?
- 13. 如何拦截并获取重定向URL的位置标题?
- 14. 获取HttpWebResponse标题无重定向
- 15. PHP Curl错误重定向
- 16. php curl跟着重定向?
- 17. 使用cURL重定向?
- 18. Php重定向与标题()
- 19. 获得具有JSON数据使用curl的重定向URL
- 20. 标题函数不重定向?
- 21. PHP CURL跟随重定向获取HTTP状态
- 22. PHP获取重定向URL
- 23. PHP标题不重定向获取变量
- 24. 如何使用jQuery的$ .post函数获取“位置”标题?
- 25. R ggplot2:如何使用轴标题的文本获取函数?
- 26. 如何使用curl获取数组的键值(php)
- 27. 如何从url获取变量并使用php重定向301?
- 28. 在PHP中使用cURL,无法获取少数站点的标题
- 29. 没有标题的PHP重定向
- 30. 如何使用包含META的CURL重新定向所有重定向
啊。好想法。谢谢! – 2010-07-24 21:22:06
有一件事 - HTTP 1.0呢? 200后的标准信息是'OK'吗? – 2010-07-24 21:24:46
我会使用类似preg_match('/^HTTP 1 \ [01] 200 /'...以确保在HTTP 1.0上的优点.OK是事实上的标准,但RFC仅指定结果number(200)。 – m1tk4 2010-07-24 21:33:58