コードをコピーします コードは次のとおりです。
$ch =curl_init()
$c_url = 'http:// www.baidu .com';
$c_url_data = "product_&type=".$type."";
curl_setopt($ch, CURLOPT_URL,$c_url); ;
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $c_url_data);
echo $result =curl_exec($ch);
unset($ch);
PHP での Curl の使用
コードは次のとおりです: // 新しい Curl リソースを作成します $ch =curl_init();
// URL およびその他の適切なオプションを設定しますcurl_setopt( $ch, CURLOPT_URL, “http://www.google.nl/”);
// URL を取得してブラウザに渡します
curl_exec($ch)
// Curl リソースを閉じます。システム リソースを解放します。
curl_close($ch);
?>
他のサイトのコンテンツを取得し、自動的にブラウザに出力しました。取得した情報を整理して、何を出力するかを制御するのはどうでしょうか? curl_setopt() 関数のパラメータで、コンテンツを取得するが出力しない場合は、CURLOPT_RETURNTRANSFER パラメータを 0 以外の値/true! に設定します。を参照してください:
コードは次のとおりです: // 新しいカール リソースを作成します $ ch =curl_init();
// URL とその他の適切なオプションを設定しますcurl_setopt($ch, CURLOPT_URL, “http://www.google.nl/”);
curl_setopt($ch, CURLOPT_RETURNTRANSFER) , true);
// URL を取得し、出力を返します
$output =curl_exec($ch);
// Curl リソースを閉じ、システム リソースを解放します
curl_close($ch);
// 'Google' を 'PHPit' に置き換えます
$output = str_replace('Google', 'PHPit', $output)
// 出力を出力します
echo $output; ?>
上記の 2 つの例では、curl_setopt() 関数の異なるパラメーターを設定すると、異なる結果が得られることがわかりました。これが、curl が強力な理由です。これらのパラメーターの意味を見てみましょう。
CURL 関連のオプション:
PHP マニュアルのcurl_setopt() 関数を読んだことがある方は、その下にパラメーターの長いリストがあることに気づくでしょう。それらを 1 つずつ紹介するのは不可能です。詳細については、PHP マニュアルを参照してください。ここでは、一般的に使用されるいくつかのパラメーターと一部のパラメーターのみを紹介します。
最初の興味深いパラメータは CURLOPT_FOLLOWLOCATION です。このパラメータを true に設定すると、curl はリダイレクト コマンドに基づいてより深いリダイレクト パスを取得します。たとえば、PHP ページを取得しようとすると、次のようなジャンプ コードが存在します。この PHP ページでは、curl はジャンプ コードを返す代わりに http://new_url からコンテンツを取得します。完全なコードは次のとおりです:
コードをコピー コードは次のとおりです:
// 新しいカール リソースを作成します
$ch =curl_init();
// URL とその他の適切なオプションを設定します
curl_setopt($ch, CURLOPT_URL, “http://www.google.com/”); ch, CURLOPT_FOLLOWLOCATION, true );
// URL を取得し、
curl_exec($ch);
?> Google がリダイレクト リクエストを送信した場合、上記このパラメータに関連する 2 つのオプションは、CURLOPT_MAXREDIRS と CURLOPT_AUTOREFERER です。
パラメータ CURLOPT_MAXREDIRS オプションを使用すると、この数を超えると、そのコンテンツは無効になります。より長く入手できます。 CURLOPT_AUTOREFERER が true に設定されている場合、curl は自動的にリファラー ヘッダーを各ジャンプ リンクに追加します。これはあまり重要ではないかもしれませんが、場合によっては非常に便利です。
次に導入されるパラメータは CURLOPT_POST です。これは、GET リクエストの代わりに POST リクエストを実行できるため、非常に便利な機能です。これは本質的に、ページの
コードは次のとおりです: // 新しいカールを作成しますresource $ch =curl_init();
// URL とその他の適切なオプションを設定しますcurl_setopt($ch, CURLOPT_URL,”http://projects/phpit/content/usingcurl php/demos/handle_form) .php”) ;
// POST を実行します
$data = array('name' => 'Dennis', 'surname' => 'Pallett'); CURLOPT_POST, true) ;
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_exec($ch)> .php ファイル:
echo '受信したフォーム変数:';
print_r ($_POST);
ご覧のとおり、これによりフォームの送信が非常に簡単になり、常にフォームに入力することなくすべてのフォームをテストできる優れた方法です。
パラメータ CURLOPT_CONNECTTIMEOUT は通常、curl がリンクを要求する時間を設定するために使用されます。これは非常に重要なオプションです。この時間を設定しすぎると、curl 要求が失敗する可能性があります。
しかし、あまりにも長く設定すると、PHP スクリプトが停止してしまう可能性があります。このパラメータに関連するオプションは CURLOPT_TIMEOUT です。これは、curl の実行が許可されるまでに必要な時間を設定するために使用されます。これを非常に小さい値に設定すると、ダウンロードに時間がかかるため、ダウンロードされたページが不完全になる可能性があります。
最後のオプションは CURLOPT_USERAGENT で、webspilder や IE6.0 などのリクエストのクライアント名をカスタマイズできます。サンプル コードは次のとおりです。
コードをコピーします。
コードは次のとおりです:
// URL を取得し、 curl_exec($ch); 最も興味深いパラメータを導入しました。次にやってみましょう。curl_getinfo() 関数を導入して、何ができるかを見てみましょう。
ページ情報の取得:関数curl_getinfo()を使用すると、オプションの2番目のパラメータを設定することで、この情報を編集できます。配列。次の例のように:
コードをコピーします
コードは次のとおりです:
// 新しいcurlリソースを作成します
$ch =curl_init();
// URLおよびその他の適切なオプションを設定します
curl_setopt($ch, CURLOPT_URL, “http://www .google.com");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FILETIME, true);
/ / URL を取得
$output =curl_exec($ch);
// 情報を印刷します
print_r (curl_getinfo($ch)); >?>
返される情報のほとんどは、このリクエストに費やされた時間、返されたヘッダー ファイル情報、そしてもちろんサイズなどの一部のページ情報など、リクエスト自体です。ページコンテンツの最終変更時刻。
curl_getinfo() 関数については以上です。次に、実際に何に使用されるかを見てみましょう。
コードは次のとおりです: // 新しいカール リソースを作成します
$ch =curl_init();// URL とその他の適切なオプションを設定します
curl_setopt($ch, CURLOPT_URL, “http://www.google.com/does/not/exist”); 🎜>curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
// URL を取得
$output =curl_exec($ch);
// 応答コードを取得
$response_code =curl_getinfo($ch, CURLINFO_HTTP_CODE);
// 見つかりません ?
if ($response_code == '404') {
echo 'ページが存在しません'
} else {
echo $output;
}
?>
他のユーザーは、要求された各ページの存在を確認する自動チェッカーを作成できます。
curl ライブラリを使用して、Google や他の Web スパイダーに似た Web スパイダーを作成できます。この記事は Web スパイダーの書き方に関するものではないため、Web スパイダーについては詳しく説明しませんが、将来的には、curl を使用して PHPit で Web スパイダーを構築することを紹介します。
結論: