作者:佚名 时间:2024-06-11 09:28:26 阅读:(8)
在PHP中,可以使用CURL库来进行网络请求,并获取远程服务器返回的状态码。通过判断状态码,可以确定网页是否存在或者返回404错误。接下来云梦编程网为大家介绍如何使用PHP中的CURL库来判断网页是否返回404状态码的方法。有需要的小伙伴可以参考一下:
/** * php使用curl判断404 * author: yundreams * Date: 2024/06/11 * Time: 09:23 */ function chkurl($url){ $handle = curl_init($url); curl_setopt($handle, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($handle, CURLOPT_CONNECTTIMEOUT, 10);//设置超时时间 curl_exec($handle); //检查是否404(网页找不到) $httpCode = curl_getinfo($handle, CURLINFO_HTTP_CODE); if($httpCode == 404) { return false; }else{ return true; } curl_close($handle); } $url="https://www.yundreams.com/article/420.html"; if(chkurl($url)==true){ echo "存在"; }else{ echo "不存在"; }
function isPageExist($url) { $parsed_url = parse_url($url); $host = $parsed_url['host']; $path = isset($parsed_url['path']) ? $parsed_url['path'] : '/'; // 设置超时时间 $timeout = 10; $fp = @fsockopen($host, 80, $errno, $errstr, $timeout); if ($fp) { $request = "GET $path HTTP/1.1\r\n"; $request .= "Host: $host\r\n"; $request .= "Connection: Close\r\n\r\n"; fwrite($fp, $request); $response = fgets($fp, 4096); fclose($fp); // 检查HTTP响应码 if (preg_match('|HTTP/1\.1 (\d{3}) |', $response, $matches)) { $statusCode = $matches[1]; if ($statusCode == 404) { return false; // 页面不存在 } else { return true; // 页面存在 } } else { // 无法解析响应码,默认页面存在 return true; } } else { // 连接失败 return false; } } // 使用示例 $url = "https://www.yundreams.com/article/420.html"; if (isPageExist($url)) { echo "页面存在"; } else { echo "页面不存在"; }
通过以上方法,可以使用PHP中的CURL库来判断网页是否返回404状态码。希望本文对你理解如何使用PHP的CURL来判断网页是否返回404状态码有所帮助!