我使用PHP從數據庫中獲取URL列表。每個網址都由PHP中的Check_URL Function檢查,它使用curl來檢查網站是否生效。使用捲曲和PHP
function Check_URL($url) {
$agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_USERAGENT, $agent);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_TIMEOUT, 3);
$page = curl_exec($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpcode >= 200 && $httpcode <= 301) {
return true;
} else {
return false;
}
}
不幸的是,頁面需要永久加載。我讀過curl_multi_init();可能是我的解決方案,但我不知道如何將其實現到我所擁有的。提前致謝。
所以,當你在你的服務器上加載一個頁面時,這個函數被調用並檢查一些urls數量?這意味着不僅是你的頁面加載,而且你還在等待X URL被CURL加載。您加載了多少個網址?您可能想要考慮讓其他內容觸發您的腳本,如您的網頁上的圖像。 – Aerik 2012-03-13 23:02:57
這是你應該在後臺真正做的事情,與爲用戶呈現頁面的線程分開。將這些URL的任務投入到Beanstalkd中,並編寫一個工作者來測試它們並將結果存儲在數據庫中。 – 2012-03-13 23:04:09
@Aerik - 30個網址開始。 – Joe 2012-03-13 23:05:06