CURL に詳しくない学生は、http://www.BkJia.com/kf/201208/147091.html にアクセスしてください
GET リクエストを行う場合、「クエリ文字列」を介してデータを URL に渡すことができます。たとえば、Google で検索する場合、検索キーは URL のクエリ文字列の一部です:
http://www.google.com/search?q=nettuts
この場合、シミュレートするために cURL は必要ないかもしれません。この URL を「file_get_contents()」にスローすると、同じ結果が得られます。
ただし、一部の HTML フォームは POST メソッドを使用して送信されます。このフォームが送信されると、データはクエリ文字列ではなく HTTP リクエスト本文を通じて送信されます。たとえば、CodeIgniter フォーラム フォームを使用する場合、どのようなキーワードを入力しても、常に次のページに POST されます:
http://codeigniter.com/forums/do_search/
PHP スクリプトを使用して、この種の URL リクエストをシミュレートできます。まず、POST データを受け入れて表示できる新しいファイルを作成し、post_output.php という名前を付けます。
print_r($_POST);次に、cURL リクエストを実行するための PHP スクリプトを作成します。
$url = "http://localhost/post_output.php";
$post_data = 配列 (
「フー」 => 「バー」、
"クエリ" => "ネットッツ",
「アクション」=>「送信」
);
$ch =curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// データを POST しています!
curl_setopt($ch, CURLOPT_POST, 1);
// post 変数に
を追加します
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$output =curl_exec($ch);
curl_close($ch);
エコー $output;
コードを実行すると、次の結果が得られるはずです:
このスクリプトは、このページの $_POST 変数である post_output.php に POST リクエストを送信し、この出力をキャプチャするために cURL を使用します。
ファイルアップロード
ファイルのアップロードは、前の POST と非常に似ています。すべてのファイル アップロード フォームは POST メソッドを通じて送信されるためです。
まず、ファイルを受信するための新しいページを、upload_output.php という名前で作成します。
print_r($_FILES);
以下は、実際にファイルアップロードタスクを実行するスクリプトです:
$url = "http://localhost/upload_output.php";
$post_data = 配列 (
「フー」 => 「バー」、
//アップロードするローカルファイルのアドレス
"アップロード" => "@C:/wamp/www/test.zip"
);
$ch =curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$output =curl_exec($ch);
curl_close($ch);
エコー $output;
ファイルをアップロードする必要がある場合は、post 変数のようにファイル パスを渡すだけですが、先頭に @ 記号を追加することを忘れないでください。このスクリプトを実行すると、次の出力が得られるはずです:
http://www.bkjia.com/PHPjc/478027.html