ホームページ  >  記事  >  バックエンド開発  >  PHP ユーティリティ関数: stream_context_create は POST/GET をシミュレートします

PHP ユーティリティ関数: stream_context_create は POST/GET をシミュレートします

WBOY
WBOYオリジナル
2016-08-08 09:23:06840ブラウズ

PHP 実践関数マニュアル: stream_context_create() は POST/GET をシミュレートします

場合によっては、サーバー側で POST/GET やその他のリクエストをシミュレートする必要があります。つまり、PHP プログラムにシミュレーションを実装する必要があります。 ?言い換えれば、PHP プログラムで配列が与えられた場合、この配列を別のアドレスに POST/GET するにはどうすればよいでしょうか?もちろん、CURL を使用すると簡単ですが、CURL ライブラリを使用しない場合はどうなるでしょうか。実は、PHP には関連する関数がすでに実装されており、その関数が次に説明する stream_context_create() です。
コードを直接表示します。これが最良の方法です:
$data = array( 'foo'=>'bar', 'baz'=>'boom', 'site'=>'www.lai18.com', 'name'=>'lai18'); $data = http_build_query($data); //$postdata = http_build_query($data); $options = array( 'http' => array( 'method' => 'POST', 'header' => 'Content-type:application/x-www-form-urlencoded', 'content' => $data //'timeout' => 60 * 60 // 超时时间(单位:s) ) ); $url = "http://www.lai18.net/"; $context = stream_context_create($options); $result = file_get_contents($url, false, $context); echo $result;<br> http://www.lai18.com のコードは次のとおりです: <br><precourier new margin-top:0px margin-bottom:10px line-height:20px word-break:break-all word-wrap:break-word white-space:pre-wrap background-color:rgb>$data = $_POST; echo '<pre class="brush:php;toolbar:false">'; print_r( $data ); echo '';
実行結果は次のとおりです:
Array ( [foo] => bar [baz] => boom [site] => www.lai18.com [name] => lai18 )
説明する重要なポイント (参考: ) http://www.lai18.com/content/425476.html):
1. 上記のプログラムは http_build_query() 関数を使用しています。詳細については、stream) を参照してください。ファイルシステム内で。これは、ファイル ハンドルを使用せずにファイル名を直接操作する file_get_contents、file_put_contents、readfile などの関数でより便利です。 stream_context_create へのヘッダーの追加は関数の一部にすぎません。プロキシやタイムアウトなども定義できます。これにより、Web にアクセスする機能は、curl よりも弱くなります。
4. stream_context_create() の関数: テキストデータストリームを作成して返し、fopen()、file_get_contents のタイムアウト設定、プロキシサーバー、リクエストメソッド、ヘッダー情報の設定などの特殊な処理に使用できます。 () およびその他のプロセス。
5. stream_context_create は、タイムアウト オプションを追加することで file_get_contents のタイムアウト処理を解決することもできます:
$opts = array( 'http'=>array( 'method'=>"GET", 'timeout'=>60, ) ); //创建数据流上下文 $context = stream_context_create($opts); $html =file_get_contents('http://www.lai18.com', false, $context); //fopen输出文件指针处的所有剩余数据: //fpassthru($fp); //fclose()前使用

詳しくはこちら

この記事のトピックのリストは次のとおりです:

1 PHP 関数の完了: get_magic_quotes_gpc()

2 PHP 関数の完了: error_reporting()

3 PHP 関数の完了: array_splice()

4 PHP 関数の完了: isset()

5 PHP 関数の完了: array_multisort()

6 PHP 関数の完了: urlencode()

7 PHP関数の完了:preg_match()

8 PHP関数の完了:header()

9 PHP関数の完了:getenv()

10 PHP関数の完了:list()

11 PHP関数の完了: mysql_num_rows()

12 PHP関数の完了:explode()

13 PHP関数の完了:mysql_fetch_array()

14 PHP関数の完了:number_format()

15 PHP関数の完了:mysql_query()

16 PHP関数の完了 終了: empty()

17 PHP関数の完了: call_user_func()

18 PHP関数の完了: parse_url()

19 PHP関数の完了: import_request_variables()

20 PHP関数完了: ImageCopyResamples()

21PHP 関数の完了: HTML タグの削除strip_tags()

22PHP 関数の完了: 配列構造と内容の出力 var_dump()

23PHP 関数の完了: var_export()

24PHP 関数の完了:変数が数値であるかどうかを決定する is_numeric() の完成

25 PHP 関数: http_build_query() は URL 文字列を構築します

26PHP 実践関数マニュアル: stream_context_create() は POST/GET をシミュレートします

27 PHP 関数の完了: shuffle( ) は複数の配列を受け取ります ランダムな要素

28 PHP 関数の完了: session_id()

29 PHP 関数の完了: nl2br() および nl2p() 関数

30 PHP 関数の完了: session_name()

31 PHP スケジュール済みtaskignore_user_abort 関数の実装メソッド

32PHP での error_log() 関数の使用方法

33PHP ユーティリティ function-array_change_key_case() は、配列のキーを大文字と小文字に変換します

34PHP ユーティリティ function-function_exists() は、関数は定義されています

35PHP ユーティリティ Function-array_intersect() は 2 つ以上の配列の交差を計算します

36PHP ユーティリティ function-array_diff() は配列の差を計算します

37PHP ユーティリティ function-compact() は既知の変換を行います変数を配列に変換します

38PHP ユーティリティ関数-extract() は、配列を対応するキーと値のペアの変数に変換します

39PHP ユーティリティ関数-array_count_values() は、配列内の要素の出現数をカウントします

40PHP ユーティリティ関数- getopt()はコマンドラインパラメータリストから取得します オプション

41PHP実践関数 文字列関数の分類

42データ検証にはPHP独自のフィルター関数を使用します

上記では、PHP の実践的な関数を紹介しています。stream_context_create は POST/GET をシミュレートします。関連する内容も含めて、PHP チュートリアルに興味のある友人に役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。