我试图只得到三位数的http状态码,而在变量$response中没有更多的内容。例如302,404,301等等。我注意到的另一个观察结果是在一些网站上,比如谷歌,它下载的似乎是身体的一部分,这是一个巨大的带宽浪费和缓慢。
<?php
$URL = 'http://www.google.com';
$curlHandle = curl_init();
curl_setopt($curlHandle, CURLOPT_URL, $URL);
curl_setopt($curlHandle, CURLOPT_HEADER, true);
$response = curl_exec($curlHandle);
echo $response;
?>
3条答案
按热度按时间fiei3ece1#
您可以将
CURLOPT_NOBODY
选项设置为不接收正文,然后使用curl_getinfo
获取状态代码。就像这样:
utugiqy62#
首先,您只会得到标头(CURLOPT_NOBODY)。
然后捕获HTML作为结果(CURLOPT_RETURNTRANSFER)。
最后,使用正则表达式提取HTTP代码,该正则表达式获得由空格包围的第一个数字。
u0sqgete3#
对于状态代码,您可以使用以下代码:
http://php.net/manual/en/function.get-headers.php