file_get_html()
2000 ページのサイトがあり、関数と正規表現を使用して、各ページを反復処理してサイトマップを生成したいと考えています。
明らかに、これは最大実行時間のために時間切れになるため、サーバー側の 1 回の実行で完了することはできません。より小さなアクションを実行し、進行状況をデータベースに保存してから、次のタスクをキューに入れる必要があると思います。助言がありますか?
file_get_html()
2000 ページのサイトがあり、関数と正規表現を使用して、各ページを反復処理してサイトマップを生成したいと考えています。
明らかに、これは最大実行時間のために時間切れになるため、サーバー側の 1 回の実行で完了することはできません。より小さなアクションを実行し、進行状況をデータベースに保存してから、次のタスクをキューに入れる必要があると思います。助言がありますか?
コマンドラインで実行すると、最大実行時間はありません。
set_time_limit(0);
プロバイダーが操作を許可している場合は、これを使用することもできます。
あなたの IP アドレスが禁止されるかどうかはわかりません。これは、リクエストを送信するサーバーのセキュリティに依存するためです。
その他の解決策
1 つ (または数ページ) のページをフェッチし、ソース コード全体で新しい URL を検索できます。その後、これらをデータベースのキューに入れることができます。次に、次の実行時にキューを処理します。
を使用しset_time_limit(0)
ます。より詳細な説明については、 PHP マニュアルを参照してください。
秒
最大実行時間 (秒単位)。ゼロに設定すると、時間制限は課されません。
編集: 2 番目の質問については、可能性は低いですが、ホスティング サービスの利用規約を確認して、許可されているかどうかを確認する必要があります。