我正在使用CURL来获取站点的状态,如果它是向上/向下或重定向到另一个站点 . 我希望尽可能简化它,但它不能很好地运行 .
<?php
$ch = curl_init($url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_TIMEOUT,10);
$output = curl_exec($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
return $httpcode;
?>
我把它包裹在一个函数中 . 它工作正常,但性能不是最好的,因为它下载整个页面,如果我删除 $output = curl_exec($ch);
的东西,它一直返回 0
.
有谁知道如何使性能更好?
7 回答
curl_exec
是必要的 . 尝试CURLOPT_NOBODY
不下载正文 . 那可能会更快 .curl_getinfo
- 获取有关特定转移的信息检查curl_getinfo
试试PHP的“get_headers”功能 .
有点像:
这是我的解决方案需要获取Status Http来定期检查服务器的状态
首先确保URL实际上是否有效(字符串,非空,良好的语法),这可以快速检查服务器端 . 例如,首先执行此操作可以节省大量时间:
确保只获取 Headers ,而不是正文内容:
有关获取URL状态http代码的更多详细信息,请参阅我发布的另一篇文章(它还有助于以下重定向):
整体来说: