CURL とは何ですか?
URL 構文を使用してコマンド ライン モードで動作するファイル転送ツールです。多くのプロトコルをサポートしています。認証機能をサポートしています。これは、より複雑な送信関数を実装するために PHP でよく使用されます。
実装された機能:
1. コンテンツのリモート取得と収集を実現します
2. PHP Web バージョンの FTP アップロードとダウンロードを実現します
3. 模擬ログインを実現します: 電子メール システムに移動し、curl は Cookie をシミュレートできます
4. インターフェイスのドッキングを実現します ( API)、データ送信など:プラットフォームを通じてテキストメッセージを送信し、送信された情報を取得して配信します。
5. 模擬Cookie等の実装:一部の属性はログイン時のみ操作可能です。
CURL 関数の使用方法:
デフォルトでは、PHP は CURL をサポートしていません。php.ini でこの関数を有効にする必要があります。
;extension=php_curl.dll の前のセミコロンを削除します
1 全体の最初のステップ。操作は、cur_init() 関数を使用して初期化することです
$curl =curl_init('www.php100.com')
2.curl_setopt() 関数を使用してオプションを設定します。
3. 設定後、トランザクションcurl_exec($curl)を実行します
4 最後にcurl_close();を閉じます。
PHP CURL を使用して送信および取得関数を実装します (送信後メソッド): リモート Web ページ データを取得します
$user = "admin";
$pass = "admin100";
$curlPost = "user=$user&pass=$pass ";
$ch =curl_init(); //CURL オブジェクトを初期化します
curl_setopt($ch, CURLOPT_URL, "http://localhost/edu/login.php");
//クロールする必要がある URL を設定します
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 0);
//curl パラメータを設定し、結果を画面に出力するかどうかを尋ねます。 true の場合、上記の 0 は Web ページに返されません。 1 ずつ、次の $data をエコーするだけです。
curl_setopt($ch, CURLOPT_POST, 1);
//投稿投稿
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
$data =curl_exec($ch);
curl_close($ch);
リモート模擬ログインの最も基本的な部分を実現します。
curl ではユーザー名とパスワードを設定する必要がありますが、ブラウザーによって非表示になります。
================================================ === ===========================
curl 模擬ログイン
シミュレートされたログイン: php100 フォーラムにログインしなくても、対応する情報を表示できます。
1. ログインをシミュレートした後、Cookie の内容を保存するファイルを作成します
2. パスを読み取ります。ユーザーのログインステータスをシミュレートするために生成された Cookie コンテンツ
3. 関連するページに移動して、必要なコンテンツを取得します
tempname は一時ファイルを作成します
tempnam(dir,prefix)
パラメータの説明
dir が必要です。一時ファイルを作成するディレクトリを指定します。
接頭辞が必要です。ファイル名の先頭を指定します。
fopen fwirte fclose と同等
ブール値を返すことができます。サードパーティを使用して QQ および msn にログインすることは、ログイン ステータスが記録され、ユーザー名とパスワードがキャプチャされる可能性があるため、非常に危険です。
CURL を使用して PHP100 フォーラムへのログインをシミュレートします
1. ログインに必要な入力ボックスのフィールド名と必須フィールドの数を分析します
2. Cookieを保存し、ログインをシミュレートした後、会員ゴールドコインの数を取得します
コード:
//cURL オブジェクトを初期化します
$curl =curl_init();
//クロールする必要がある URL を設定します
//結果を文字列で保存するか画面に出力するように cURL パラメーターを設定します。
//cURL を実行して Web ページをリクエストします
//URL リクエストを閉じる
$pass = "admin100";
$curlPost = "user=$user&pass=$pass";
$ch =curl_init();
curl_setopt($ch, CURLOPT_URL, "http: //localhost/curl/login.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
$data = curl_exec($ch);
curl_close($ch);
?>
if($_POST['user']=="admin"){
echo "<script>alert('success')</script>";
}else{
echo "< ;script>alert('failed')";
}
//print_r($_POST);
?>
======
模擬ログインコード
pw_php100.php
$cookie_file=tempnam('./temp','cookie');
$login_url="http://bbs.php100.com/login.php";
$post_fields= "cktime=3600&step=2&pwuser=php100&pwpwd=11111";
$ch=curl_init($login_url);
curl_setopt($ch, CURLOPT_URL, "http://www.baidu.com";
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);
$data =curl_exec($ch);
curl_close ($ch);
$url="http://bbs.php100.com/userpay.php";
$ch=curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
$contents =curl_exec($ch);
preg_match("/
?>
======
ログイン.php
print_r($_POST);
?>
====================
curl.php
$curlPost = "user=$user&pass=$pass";
$ch =curl_init();
curl_setopt($ch, CURLOPT_URL, "http://localhost/edu/login.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch 、CURLOPT_POSTFIELDS、$curlPost);
$data =curl_exec($ch);
curl_close($ch);
?>