ホームページ >バックエンド開発 >PHPチュートリアル >CURL を使用してログインをシミュレートし、PHP_PHP チュートリアルでデータ インスタンスを取得する

CURL を使用してログインをシミュレートし、PHP_PHP チュートリアルでデータ インスタンスを取得する

WBOY
WBOYオリジナル
2016-07-13 10:26:27744ブラウズ

cURL は強力な PHP ライブラリです。PHP の cURL ライブラリを使用すると、Web ページへのログインをシミュレートするための Cookie を設定して、PHP からより多くの情報を取得できます。 cURL の詳細についてはマニュアルを参照してください。この記事では、cURL の使用方法を共有する例として、オープン ソースの中国 (oschina) へのシミュレートされたログインを取り上げます。
PHP のcurl() は、Web ページのクロールにおいて比較的効率的で、マルチスレッドをサポートしていますが、file_get_contents() は、当然のことながら、curl を使用する場合は、curl 拡張機能を有効にする必要があります。

コードの練習

まずログイン部分のコードを見てみましょう:

コードをコピーします コードは次のとおりです:

//ログインをシミュレートします
関数login_post($url, $cookie, $post) {
$curl =curl_init();//curl モジュールを初期化します
curl_setopt($curl, CURLOPT_URL, $url); // ログインしてアドレスを送信します
curl_setopt($curl, CURLOPT_HEADER, 0);//ヘッダー情報を表示するかどうか
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 0);//返された情報を自動的に表示するかどうか
curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie); // 指定したファイルに保存する Cookie 情報を設定します
curl_setopt($curl, CURLOPT_POST, 1);//投稿で送信
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post));//送信する情報
curl_exec($curl);//cURL を実行する
curl_close($curl);// cURL リソースを閉じ、システム リソースを解放します
}

関数login_post()は、最初にcurl_init()を初期化し、次にcurl_setopt()を使用して、送信するURLアドレス、保存されたCookieファイル、投稿データ(ユーザー名とパスワードなど)、次にcurl_execがcurlを実行し、最後にcurl_close()がリソースを解放します。 PHP 独自の http_build_query() は配列を接続された文字列に変換できることに注意してください。
次に、ログインに成功した場合は、ログイン成功後のページ情報を取得する必要があります。

コードをコピーします コードは次のとおりです:

//ログイン成功後にデータを取得します
関数 get_content($url, $cookie) {
$ch =curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie) // Cookie を読み取ります
$rs =curl_exec($ch); // cURL を実行してページのコンテンツをキャプチャします
カール_クローズ($ch); $rs を返します。 }



関数 get_content() も、最初にcurlを初期化し、次に関連するオプションを設定し、curlを実行して、リソースを解放します。このうち、CURLOPT_RETURTRANSFER を 1 に設定すると情報が自動的に返され、CURLOPT_COOKIEFILE はログイン時に保存された Cookie 情報を読み取って、最終的にページのコンテンツを返すことができます。

私たちの最終的な目標は、通常のログインに成功した後にのみ取得できる有益な情報である模擬ログイン後の情報を取得することです。次に、Open Source China のモバイル バージョンへのログインを例として、ログイン成功後の情報を取得する方法を確認します。

コードをコピーします

コードは次のとおりです:

//投稿データを設定する $post = 配列 ( 'メール' => 'oschina アカウント', 'pwd' => 'oschina パスワード',
'goto_page' => '/my',
'error_page' => '/login',
'save_login' => '1'、
「送信」 => 「今すぐログイン」
);
//ログインアドレス
$url = "http://m.jb51.net/action/user/login"; // Cookie の保存パスを設定します
$cookie = ディレクトリ名(__FILE__) '/cookie_jb51.txt'; //ログイン後に情報を取得するアドレス
$url2 = "http://m.jb51.net/my"; //ログインをシミュレートします
ログイン_ポスト($url, $cookie, $post); //ログインページ情報を取得します
$content = get_content($url2, $cookie); //Cookieファイルを削除
@リンク解除($cookie)
// 一致するページ情報
$preg = "/(.*)/i"; preg_match_all($preg, $content, $arr); $str = $arr[1][0]; //出力内容
エコー $str;

上記のコードを実行すると、ログインしているユーザーのアバター写真が最終的に取得されたことがわかります。

使用法の概要:
1.カールを初期化します。 2.curl_setopt を使用してターゲット URL とその他のオプションを設定します。 3.curl_exec、curl を実行します。 4. 実行後、curl を閉じます。 5. データを出力します。



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

www.bkjia.com

http://www.bkjia.com/PHPjc/824702.html技術記事 cURL は強力な PHP ライブラリです。PHP の cURL ライブラリを使用すると、Web ページを簡単かつ効果的にクロールし、Web ページへのログインをシミュレートするためのコンテンツを収集できます。Curl は、開くための豊富な機能を提供します。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。