リンクからデータを取得する場合でも、XML ファイルを取得してデータベースにインポートする場合でも、単に Web ページのコンテンツを取得する場合でも、cURL は強力な PHP ライブラリです。この記事では主にこのPHPライブラリの使い方について説明します。
cURL設定を有効にする
まず、PHPでこのライブラリが有効になっているかどうかを確認する必要があります。この情報は、php_info()関数を使用して取得できます。
<?php phpinfo(); ?>
Web ページに次の出力が表示された場合は、cURL ライブラリが有効になっていることを意味します。
これが表示された場合は、PHP を設定してこのライブラリを有効にする必要があります。 Windows プラットフォームを使用している場合、php.ini ファイルの設定を変更し、php_curl.dll を見つけて、前のセミコロンのコメントをキャンセルするだけです。以下に示すように:
//次の
extension=php_curl.dll のコメントを解除します
Linux を使用している場合は、編集時に PHP を再コンパイルする必要があります。— 「--」を追加します。 with-curl」パラメータをconfigureコマンドに追加します。
小さな例
すべての準備ができたら、ここに小さなルーチンがあります:
<?php // 初始化一个 cURL 对象 $curl = curl_init(); // 设置你需要抓取的URL curl_setopt($curl, CURLOPT_URL, 'http://jb51.net'); // 设置header curl_setopt($curl, CURLOPT_HEADER, 1); // 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 运行cURL,请求网页 $data = curl_exec($curl); // 关闭URL请求 curl_close($curl); // 显示获得的数据 var_dump($data);
データを POST する方法
上記は Web ページをクロールするコードで、以下は特定の Web ページにデータを POST するコードです。フォーム処理 URL http://www.example.com/sendSMS.php があり、2 つのフォーム フィールド (1 つは電話番号、もう 1 つはテキスト メッセージのコンテンツ) を受け入れることができるとします。
<?php $phoneNumber = '13912345678'; $message = 'This message was generated by curl and php'; $curlPost = 'pNUMBER=' . urlencode($phoneNumber) . '&MESSAGE=' . urlencode($message) . '&SUBMIT=Send'; $ch = curl_init();chain link fencing curl_setopt($ch, CURLOPT_URL, 'http://www.example.com/sendSMS.php'); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost); $data = curl_exec(); curl_close($ch); ?>
上記のプログラムから、GET メソッドの代わりに CURLOPT_POST を使用して HTTP プロトコルの POST メソッドを設定し、CURLOPT_POSTFIELDS で POST データを設定していることがわかります。
プロキシサーバーについて
以下はプロキシサーバーの使用例です。強調表示されたコードに注目してください。コードは非常に単純なので、これ以上説明する必要はありません。
<?php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://www.example.com'); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1); curl_setopt($ch, CURLOPT_PROXY, 'fakeproxy.com:1080'); curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'user:password'); $data = curl_exec(); curl_close($ch); ?>
SSLとCookieについて
ガス発生器のHTTPSプロトコルであるSSLについては、CURLOPT_URL接続のhttp://をhttps://に変更するだけです。もちろん、サイトを検証するために設定できる CURLOPT_SSL_VERIFYHOST というパラメーターもあります。
Cookieについては、次の3つのパラメータを知っておく必要があります:
CURLOPT_COOKIE、対面セッションでCookieを設定します
CURLOPT_COOKIEJAR、セッション終了時にCookieを保存します
CURLOPT_COOKIEFILE、Cookieファイル。
HTTPサーバー認証
最後に、HTTPサーバー認証について見てみましょう。
<?php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://www.example.com'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt(CURLOPT_USERPWD, '[username]:[password]') $data = curl_exec(); curl_close($ch); ?>
詳細については、関連する cURL マニュアルを参照してください。
PHP の cURL ライブラリ関数、Web ページのクローリング、POST データ、およびその他の関連記事の詳細については、PHP 中国語 Web サイトに注目してください。