私はPHPを使用してデータベースからURLのリストを取得します。各URLは、Webサイトが有効かどうかを確認するためにcurlを使用するPHPのCheck_URL関数によってチェックされます。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()を読んだ。私の解決策かもしれませんが、私は自分が持っているものにどのように実装できるのかよくわかりません。前もって感謝します。
サーバー上にページを読み込むと、この関数が呼び出され、いくつかのURLがチェックされますか?つまり、ページの読み込みだけでなく、CURLによってXのURLが読み込まれるのを待っていることを意味します。いくつのURLをロードしていますか?あなたのページのイメージのように、あなたのスクリプトを引き起こす何かがあるのを調べることができます。 – Aerik
これは、ユーザーのためにページをレンダリングするスレッドとは別に、実際にバックグラウンドで行うべきことです。これらのURLのタスクをbeanstalkdにスローし、それらをテストして結果をdbに格納するワーカーを作成します。 –
@Aerik - 30のURLを開始します。 – Joe