PHPのcURLライブラリを使用すると、Webページを簡単かつ効果的にキャプチャできます。スクリプトを実行して、クロールした Web ページを分析するだけで、必要なデータをプログラムで取得できます。リンクから部分データを取得する場合でも、XML ファイルを取得してデータベースにインポートする場合でも、単に Web ページのコンテンツを取得する場合でも、cURL は強力な PHP ライブラリです。
PHP の CURL 関数ライブラリ (クライアント URL ライブラリ関数)
curl_close — Curl セッションを閉じる curl_copy_handle — Curl 接続リソースのすべてのコンテンツとパラメータをコピーする curl_errno — 現在のセッションのエラー情報を含む数値を返す curl_error — 現在のセッションのエラー情報を含む文字列を返します curl_exec — Curl セッションを実行します curl_getinfo — Curl 接続リソース ハンドルに関する情報を取得します curl_init — Curl セッションを初期化します curl_multi_add_handle — Curl バッチ セッションに別の Curl ハンドルを追加します curl_multi_close — バッチ ハンドル リソースを閉じる curl_multi_exec — Curl バッチ ハンドルを解析する curl_multi_getcontent — 取得した出力のテキスト ストリームを返す curl_multi_info_read — 現在解析されている Curl の関連する送信情報を取得する curl_multi_init — Curl バッチ ハンドルを初期化する リソース curl_multi_remove_handle — Curl バッチ ハンドル リソース内のハンドル リソースを削除します curl_multi_select — cURL 拡張子に関連付けられているすべてのソケットを取得し、「選択」できます curl_setopt_array — 配列の形式で Curl のセッション パラメーターを設定します curl_setopt — Curl のセッション パラメータを設定する curl_version — Curl 関連のバージョン情報を取得する
curl_init() 関数の役割は、curl セッションを初期化することです。curl_init() 関数の唯一のパラメータはオプションであり、URL アドレスを表します。 curl_exec() 関数は、curl セッションを実行するために使用されます。唯一のパラメーターは、curl_init() 関数によって返されるハンドルです。 curl_close() 関数は、curl セッションを閉じるために使用されます。唯一のパラメータは、curl_init() 関数によって返されるハンドルです。
例 1: 基本的な例
基本的な例 ﹤?php // cURL オブジェクトを初期化します $curl =curl_init(); // クロールする必要がある URL を設定します curl_setopt($curl, CURLOPT_URL , 'http://www.cmx8.cn'); //ヘッダーを設定します curl_setopt($curl, CURLOPT_HEADER, 1); //結果を文字列に保存するか、画面。 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //cURL を実行し、Web ページをリクエストします $data =curl_exec($curl); //URL リクエストを閉じます curl_close($curl); //取得したデータ var_dump($data);
?>
例 2: POST データ
sendSMS.php、2 つのフォーム フィールド (1 つは電話番号、もう 1 つはテキスト) を受け入れることができますメッセージの内容。
POSTデータ
﹤?php $phoneNumber ='13812345678'; $message ='このメッセージはcurlとphpによって生成されました'; $curlPost='pNUMBER='.urlencode($phoneNumber).' &MESSAGE =' .urlencode($message) .'&SUBMIT=Send'; $ch =curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://www.lxvoip.com/sendSMS.php'); curl_setopt ($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost); .cmx8.cn'); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1); _プロキシ、' proxy.lxvoip.com:1080'); curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'user:password'); $data =curl_exec(); curl_close($ch); ?﹥
例 4 : シミュレーションログイン DZ7.0 に適した Curl シミュレートされたログイン ディスク プログラム。ユーザー名をユーザー名に変更し、ユーザーパスをパスワードに変更するだけです。
Curl はログイン discuz プログラムをシミュレートします /** * Curl 模擬ログインディスク プログラム * 検証コードを有効にしたフォーラム ログイン機能はまだ実装されていません */ !extension_loaded('curl') && die('curl 拡張機能がロードされていません。'); $discuz_url = ' http://www.lxvoip.com';//フォーラムアドレス $login_url = $discuz_url .'/logging.php?action=login';//ログインページアドレス $get_url = $discuz_url .'/my .php ?item=threads'; //私の投稿 $post_fields = array(); //次の 2 つの項目は変更する必要はありません $post_fields['loginfield'] = 'username'; ['loginsubmit'] = 'true'; //ユーザー名とパスワードを入力する必要があります $post_fields['username'] = 'lxvoip'; $post_fields['password'] = '88888888';質問 $post_fields['questionid'] = 0; $post_fields['answer'] = ''; //@todo 確認コード $post_fields['seccoverify'] = ''; ] = ''; $ch =curl_init($login_url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $ch); preg_match( '/< inputs*type="hidden"s*name="formhash"s*value="(.*?)"s*/>/i', $contents, $matches ); if(!empty($matches) ) { $formhash = $matches[1]; die('フォーラムハッシュが見つかりません。'); //POST データを取得します $cookie_file = dirname(__FILE__) . '/cookie_file = tempnam('/tmp'); curl_setopt($ch, CURLOPT_HEADER); ; curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1) ; curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields); 、$cookie_file); curl_exec( $ch); curl_close($ch); // 表示するためにログインする必要があるページのコンテンツを取得する curl_setopt($ch, CURLOPT_HEADER) , 0); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); var_dump($ch)内容); ?>
上記では、内容の側面も含めて php のカールの例をいくつか紹介しました。PHP チュートリアルに興味のある友人の参考になれば幸いです。