我试图在变量 $response 中仅获取三位数的 http 状态代码编号,仅此而已。例如 302、404、301 等等。我用我的代码注意到的另一个观察是在一些网站上,例如谷歌,它正在下载似乎是 body 一部分的东西,这是对带宽的巨大浪费并且速度很慢。
<?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;
?>
最佳答案
您可以设置 CURLOPT_NOBODY
选择不接收尸体。然后你可以通过 curl_getinfo
获取状态码.
像这样:
<?php
$URL = 'http://www.google.com';
$curlHandle = curl_init();
curl_setopt($curlHandle, CURLOPT_URL, $URL);
curl_setopt($curlHandle, CURLOPT_HEADER, true);
curl_setopt($curlHandle, CURLOPT_NOBODY , true); // we don't need body
curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, true);
curl_exec($curlHandle);
$response = curl_getinfo($curlHandle, CURLINFO_HTTP_CODE);
curl_close($curlHandle); // Don't forget to close the connection
echo $response,"";
?>
关于php - 仅使用 curl 和 php 获取 http 状态代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33667482/