PHP - 如何检查404 /超时的URLS?

时间:2010-09-11 23:06:11

标签: php mysql curl curl-multi

这是我的结构:

MYSQL:表:玩具--->列:id,URL。如何让我的PHP脚本检查所有这些URL以查看它们是否存活或是否有404页面?尽量不要在页面上回显或显示结果。我需要在MYSQL中记录一个额外的列“检查”。

结果将采用以下格式:

http://asdasd.adas --- up --- 404

如果可能,它将在PHP / Curl中。我已经尝试了很多年。我放弃了所以决定在这里问。

网址都位于我的数据库中。

2 个答案:

答案 0 :(得分:2)

在cURL中,有curl_getinfo函数,它返回有关当前句柄的一些信息:

<?php
// Create a curl handle
$ch = curl_init('http://www.yahoo.com/');

// Execute
curl_exec($ch);

//fill here the error/timeout checks.

$http_code = curl_getinfo($ch,  CURLINFO_HTTP_CODE);

答案 1 :(得分:1)

我相信你能够运行SQL查询并枚举结果,所以这里是cURL部分。对于每个URL,向它发送一个HEAD请求,并检查结果代码。

<?php
$handle = curl_init($yourURL);
curl_setopt($handle, CURLOPT_NOBODY, true);
curl_exec($handle);
$result = curl_getinfo($handle, CURLINFO_HTTP_CODE);
// $result now contains the HTTP result code the page sent
?>