phpカールのいくつかの例

WBOY
リリース: 2016-07-30 13:29:46
オリジナル
817 人が閲覧しました
[ネットワークプログラミング] phpcurlのいくつかの例

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 チュートリアルに興味のある友人の参考になれば幸いです。


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート