如果我执行设置为遵循重定向并返回标头的 cURL 请求,它将返回所有重定向的标头。
我只想要返回最后一个标头(以及内容正文)。我该如何实现这一目标?
这是另一种方法:
$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>';
当然,您需要更多的错误检查,例如超时等。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)