ホームページ  >  記事  >  バックエンド開発  >  CURL は POST メソッドを使用してデータを送信します_PHP チュートリアル

CURL は POST メソッドを使用してデータを送信します_PHP チュートリアル

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

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

tru​​ehttp://www.bkjia.com/PHPjc/478027.html技術記事 CURL に詳しくない学生は、http://www.2cto.com/kf/201208/147091.html にアクセスしてください。GET リクエストが開始されると、クエリ文字列を介してデータを URL に渡すことができます。たとえば...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。