ホームページ  >  記事  >  バックエンド開発  >  phpのいくつかの例curl_PHPチュートリアル

phpのいくつかの例curl_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:46:08692ブラウズ

PHP の cURL ライブラリを使用すると、Web ページを簡単かつ効果的にスクレイピングできます。スクリプトを実行して、クロールした Web ページを分析するだけで、必要なデータをプログラムで取得できます。リンクから部分データを取得する場合でも、XML ファイルを取得してデータベースにインポートする場合でも、単に Web ページのコンテンツを取得する場合でも、cURL は強力な PHP ライブラリです。

PHPのCURL関数ライブラリ(Client URL Library Function)

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 パラメータを設定します。
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_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
$data =curl_exec();
curl_close($ch);
?﹥
例 3: プロキシサーバーの使用

プロキシサーバーを使用﹤?php
$ch =curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.cmx8.cn');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
curl_setopt($ch, CURLOPT_PROXY, 'proxy.lxvoip.com:1080');
curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'ユーザー:パスワード');
$data =curl_exec();
curl_close($ch);
?﹥
例 4: 模擬ログイン

Curl は、DZ7.0 に適したログイン ディスク プログラムをシミュレートします。ユーザー名をユーザー名に、ユーザーパスをパスワードに変更するだけです。

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 = 配列(); //次の 2 つの項目は変更する必要はありません
$post_fields['ログインフィールド'] = 'ユーザー名'; $post_fields['loginsubmit'] = 'true'; //ユーザー名とパスワードは必ず入力してください
$post_fields['ユーザー名'] = 'lxvoip'; $post_fields['パスワード'] = '88888888'; //セキュリティの質問
$post_fields['質問ID'] = 0; $post_fields['answer'] = www.2cto.com ''; //@todo 確認コード
$post_fields['seccoverify'] = '';
//FORMHASH から取得します
$ch =curl_init($login_url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $contents =curl_exec($ch); カール_クローズ($ch); preg_match('//i', $contents, $matches); if(!empty($matches)) {
$formhash = $matches[1]
; } その他 {
Die('フォーラムハッシュが見つかりません。'); }

//データを投稿し、COOKIEを取得します
$cookie_file = ディレクトリ名(__FILE__) . '/cookie.txt'; //$cookie_file = tempnam('/tmp'); $ch =curl_init($login_url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file); カール_exec($ch); カール_クローズ($ch);
//上記で取得した COOKIE を使用して、閲覧するためにログインする必要があるページのコンテンツを取得します
$ch =curl_init($get_url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); $contents =curl_exec($ch); カール_クローズ($ch);
var_dump($contents); ?>

出典:幻想春の大陸




http://www.bkjia.com/PHPjc/478614.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/478614.html

技術記事

PHP の cURL ライブラリを使用すると、Web ページを簡単かつ効果的にスクレイピングできます。スクリプトを実行して、クロールした Web ページを分析するだけで、必要なものをプログラムで取得できます...





声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。