使用curl在PHP中获取HTTP代码
发布时间:2020-12-14 00:22:49 所属栏目:Linux 来源:网络整理
导读:我正在使用CURL来获取站点的状态,如果它是向上/向下或重定向到另一个站点.我希望尽可能简化它,但效果不佳. ?php$ch = curl_init($url);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);curl_setopt($ch,CURLOPT_TIMEOUT,10);$output = curl_exec($ch);$httpcode
我正在使用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. 有谁知道如何使性能更好? 解决方法
首先确保URL实际上是否有效(字符串,非空,良好的语法),这可以快速检查服务器端.例如,首先执行此操作可以节省大量时间:
if(!$url || !is_string($url) || ! preg_match('/^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$/i',$url)){ return false; } 确保只获取标题,而不是正文内容: @curl_setopt($ch,CURLOPT_HEADER,true); // we want headers @curl_setopt($ch,CURLOPT_NOBODY,true); // we don't need body 有关获取URL状态http代码的更多详细信息,请参阅我发布的另一篇文章(它还有助于以下重定向): > How can I check if a URL exists via PHP? 整体来说: $url = 'http://www.example.com'; $ch = curl_init($url); curl_setopt($ch,true); // we want headers curl_setopt($ch,true); // we don't need body curl_setopt($ch,CURLINFO_HTTP_CODE); curl_close($ch); echo 'HTTP code: ' . $httpcode; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |