我想创建一个批处理脚本,遍历数据库中的 20,000 个链接,并清除所有 404 等。如何获取远程 URL 的 HTTP 状态代码?
最好不要使用curl,因为我没有安装它。
CURL 会是完美的,但由于你没有它,你将不得不开始使用套接字。该技术是:
- 打开到服务器的套接字。
- 发送 HTTP HEAD 请求。
- 解析响应。
这是一个简单的例子:
<?php
$url = parse_url('http://www.example.com/index.html');
$host = $url['host'];
$port = $url['port'];
$path = $url['path'];
$query = $url['query'];
if(!$port)
$port = 80;
$request = "HEAD $path?$query HTTP/1.1\r\n"
."Host: $host\r\n"
."Connection: close\r\n"
."\r\n";
$address = gethostbyname($host);
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_connect($socket, $address, $port);
socket_write($socket, $request, strlen($request));
$response = split(' ', socket_read($socket, 1024));
print "<p>Response: ". $response[1] ."</p>\r\n";
socket_close($socket);
?>
更新:我添加了几行来解析 URL
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)