私は複数のウェブページを取得する必要があります.100から500と言うことがあります。今はそれを行うためにカールを使用しています。ウェブページを取得する効果的な方法
function get_html_page($url) {
//create curl resource
$ch = curl_init();
//set url
curl_setopt($ch, CURLOPT_URL, $url);
//return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
//$output contains the output string
$html = curl_exec($ch);
//close curl resource to free up system resources
curl_close($ch);
return $html;
}
私の主な関心事は、スクリプトがこれらのWebページをすべて取得するのにかかる合計時間です。私は、取った時間が私のインターネット速度に正比例することを知っているので、大部分の時間は$html = curl_exec($ch);
関数呼び出しによって取られます。
私はそれを一度しか作成せず、各ページごとにそれを再利用し、最終的にはそれを破壊すれば、各Webページごとに何度もカールインスタンスを作成して破棄するのではなく、次のようなものがあります:
<?php
function get_html_page($ch, $url) {
//$output contains the output string
$html = curl_exec($ch);
return $html;
}
//create curl resource
$ch = curl_init();
//set url
curl_setopt($ch, CURLOPT_URL, $url);
//return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
.
.
.
<fetch web pages using get_html_page()>
.
.
.
//close curl resource to free up system resources
curl_close($ch);
?>
合計の時間に大きな違いがありますか?それ以外の方法があれば教えてください。
検索した後のページの扱いに関する質問はありません。各ファイルのダウンロード方法です。 – JAL
@flexxy:はい、私はそれを得ました。しかし、YQLを使ってウェブサイトからコンテンツをすばやく取得することができます。 – igniter