PHP快速检测死链接
3 月,跳不动了?>>> 检测死链接的原理是发起一个http请求,然后分析返回的状态码,如果是200,就说明链接可用,如果是404或者50x等等,就说明是死链接。 很容易想到用curl去完成这个任务,我今天分享一个不依赖curl并且更加高效的方法:使用socket。 步骤: 1、使用socket建立一个TCP连接: $socket = fsockopen('ssl://www.baidu.com', 443, $errorno, $erromsg, 5); if (empty($socket)) throw new \RuntimeException('连接服务器失败'); //因为baidu.com是https协议,所以需要加上ssl://前缀,端口使用443 //若你需要检测的网站是http协议,那么就去掉前缀,端口使用80 $socket = fsockopen('www.test.com', 80, $errorno, $erromsg, 5); 2、发起一个http请求: // 检测链接为:https://www.baidu.com/img/bd_logo1.png?where=super $request = "GET /img/bd_logo1.png?where=super HTTP/1.1\r\n\r\n"; fwrite($socket, $request);