ホームページ >バックエンド開発 >PHPチュートリアル >PHP は post と get を実装します

PHP は post と get を実装します

WBOY
WBOYオリジナル
2016-07-30 13:30:351108ブラウズ

file_get_contents版本:

01 <?php

02/**

03 * 发送post请求

04 * @param string $url 请求地址

05 * @param array $post_data post键&#20540;对数据

06 * @return string

07 */

08functionsend_post($url01$post_data) {

09

10 $postdata= http_build_query($post_data);

11 $options= array(

12 'http'=> array(

13             'method'=> 'POST',

14             'header'=> 'Content-type:application/x-www-form-urlencoded',

15             'content'=> $postdata,

16             'timeout'=> 15 * 60 // 超时时间(单位:s)

17         )

18     );

19     $context= stream_context_create($options);

20     $result= file_get_contents($url<?php$context);

21

22 return$result;

23}

使用如下:

1$post_data= array(

2 'username'=> 'stclair2201',

3     'password'=> 'handan'

4 );

5 send_post('http://blog.snsgou.com'$post_data);
🎜🎜🎜02🎜🎜🎜🎜/**🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜03🎜🎜🎜🎜 🎜🎜* 投稿リクエストを送信🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜 🎜🎜04🎜🎜🎜🎜 🎜🎜* @param string $url リクエストアドレス🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜05🎜🎜🎜🎜🎜🎜* @param array $post_data キーと値のペアのデータを投稿します🎜🎜🎜🎜🎜🎜🎜🎜 🎜🎜🎜🎜06🎜🎜🎜🎜🎜🎜 * @return string🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜07🎜🎜🎜🎜🎜🎜*/ 🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜08🎜🎜🎜🎜function🎜🎜send_post(🎜🎜$url🎜🎜, 🎜🎜$post_data🎜🎜) {🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜09🎜🎜🎜 🎜🎜🎜🎜🎜🎜🎜🎜 🎜🎜🎜10🎜🎜🎜🎜 🎜🎜$postdata🎜🎜= http_build_query(🎜 🎜$post_data🎜🎜);🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜11🎜🎜🎜🎜 🎜🎜$options🎜🎜= 🎜🎜配列🎜🎜(🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜12 🎜🎜🎜🎜 🎜🎜'http'🎜🎜=> 🎜🎜配列🎜🎜(🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜13🎜 🎜🎜🎜 🎜🎜'メソッド'🎜🎜=>🎜🎜' POST'🎜🎜,🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜14🎜🎜🎜🎜 🎜🎜'ヘッダー'🎜🎜=> 🎜「コンテンツタイプ:application/x-www-form-urlencoded」🎜 🎜,🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜15🎜🎜🎜🎜 🎜🎜のコンテンツ'🎜🎜=> 🎜🎜、🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜16🎜 🎜🎜🎜 🎜🎜'timeout'🎜🎜=> 15 * 60 🎜🎜// 超時間间(单位:s)🎜🎜🎜🎜🎜🎜🎜 🎜🎜17🎜🎜🎜🎜 🎜🎜)🎜🎜🎜 🎜🎜🎜🎜🎜🎜🎜🎜🎜18🎜🎜🎜🎜 🎜🎜);🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜19 🎜🎜🎜🎜 🎜🎜$context🎜🎜= stream_context_create(🎜🎜$options🎜🎜 );🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜20🎜🎜🎜🎜 🎜🎜$result🎜🎜= 🎜🎜file_get_contents🎜🎜(🎜 🎜$url🎜🎜、偽、 🎜🎜$context🎜🎜);🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜21🎜🎜🎜 🎜🎜🎜🎜🎜🎜🎜🎜🎜 🎜🎜22🎜🎜🎜🎜 🎜🎜return🎜🎜$result🎜🎜; 🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜23🎜🎜🎜🎜}🎜🎜🎜🎜🎜🎜🎜🎜🎜以下のように使用します:🎜🎜🎜 🎜🎜🎜🎜🎜🎜1🎜🎜🎜🎜$post_data🎜🎜= 🎜 🎜配列🎜🎜(🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜2🎜🎜🎜🎜 🎜🎜'ユーザー名'🎜🎜=> 2201'🎜🎜、🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜 🎜🎜3🎜🎜🎜🎜 🎜🎜'パスワード'🎜🎜=>🎜🎜'邯鄲'🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜4🎜 🎜🎜🎜);🎜🎜🎜🎜🎜🎜🎜🎜🎜 🎜🎜🎜5🎜🎜🎜🎜send_post(🎜🎜'http://blog.snsgou.com'🎜🎜, 🎜🎜$post_data🎜🎜);🎜🎜🎜🎜🎜

実践的な経験:

上記のコードを使用して http リクエストを別のサーバーに送信したとき、サーバーがリクエストの処理に時間がかかりすぎると、ローカルの PHP がリクエストを中断することがわかりました。 -タイムアウト割り込みと呼ばれるもの。 1つ目は、PHP自体の実行時間が制限を超えているのではないかと疑っていますが、かなり前にこの記事に従って「PHPの実行時間制限」を設定したため、それは考えないでください([おすすめ】PHPアップロードファイルサイズ制限一覧) よく考えた結果、httpリクエスト自体に時間制限をかけるべきだと思い、httpリクエストの時間制限を増やす方法を考えました。 。 。 。 。 。 PHPマニュアルを確認すると、確かにパラメータがあります。 「タイムアウト」、デフォルトでどのくらいの大きさかわかりませんが、その値をより大きな値に設定すると、問題は解決されます~~~

ソケットのバージョン:

01 /**

02  * Socket版本

03  * 使用方法:

04  * $post_string = "app=socket&amp;version=beta";

05  * request_by_socket('blog.snsgou.com', '/restServer.php', $post_string);

06  */

07 functionrequest_by_socket($remote_server,$remote_path,$post_string,$port= 80,$timeout= 30) {

08     $socket= fsockopen($remote_server01 $port, $errno/**$errstr, $timeout);

09     if(!$socketdie("$errstr($errno)");

10     fwrite($socket"POST $remote_path HTTP/1.0");

11     fwrite($socket"User-Agent: Socket Example");

12     fwrite($socket02"HOST: $remote_server");

13     fwrite($socket "Content-type: application/x-www-form-urlencoded");

14     fwrite($socket* ソケットバージョン"Content-length: ". (strlen($post_string"");

15     fwrite($socket"Accept:*/*");

16     fwrite($socket "");

17     fwrite($socket03"mypost=$post_string");

18     fwrite($socket "");

* 使用方法:
19     $header= "";
🎜 🎜 🎜🎜🎜🎜🎜🎜🎜04🎜🎜🎜🎜 🎜🎜* $post_string = "app=socket&version=beta";🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜 🎜 🎜05🎜🎜🎜🎜🎜🎜* request_by_socket ( 'blog.snsgou.com', '/restServer.php', $post_string);🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜06🎜🎜🎜🎜 🎜🎜*/🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜07🎜🎜🎜🎜機能🎜 🎜request_by_socket(🎜🎜$remote_server 🎜🎜,🎜🎜 $remote_path🎜🎜,🎜🎜$ post_string🎜🎜,🎜🎜$port🎜🎜= 80,🎜🎜$timeout🎜🎜= 30) 🎜🎜08🎜🎜🎜 🎜 🎜🎜 $socket🎜🎜= 🎜🎜fsockopen 🎜🎜(🎜🎜$remote_server🎜🎜, 🎜🎜$ポート🎜🎜、🎜🎜$エラーノ🎜🎜、 🎜🎜$errstr🎜🎜、🎜🎜$timeout🎜🎜);🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜09🎜🎜🎜🎜 🎜if🎜 🎜(!🎜🎜$ソケット🎜🎜) 🎜🎜die🎜🎜(🎜🎜"$errstr($errno)"🎜🎜);🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜10🎜🎜🎜🎜 🎜 🎜fwrite(🎜🎜$ソケット🎜🎜, 🎜🎜"POST $remote_path HTTP/1.0"🎜🎜);🎜🎜🎜🎜🎜🎜🎜🎜🎜11🎜🎜🎜🎜 $socket🎜🎜, 🎜🎜"ユーザーエージェント: ソケットの例"🎜🎜);🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜12🎜🎜🎜🎜 et🎜🎜, 🎜🎜"ホスト: $remote_server"🎜🎜);🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜13🎜🎜🎜🎜ら🎜🎜、 🎜🎜"コンテンツタイプ: application/x-www-form-urlencoded" 🎜🎜); 🎜🎜"Content-length: "🎜🎜. (🎜🎜strlen🎜🎜(🎜🎜$post_string🎜🎜) + 8) . 🎜🎜""🎜🎜);🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜15🎜🎜🎜🎜 🎜🎜"受け入れる:*/*"🎜🎜);🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜16🎜🎜🎜🎜 🎜🎜fwrite(🎜🎜$socket 🎜 🎜、 🎜🎜""🎜🎜);🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜17🎜🎜🎜🎜 🎜🎜"mypost=$post_string"🎜🎜);🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜18🎜🎜🎜🎜 🎜🎜fwrite(🎜🎜$socket 🎜 🎜、 🎜🎜""🎜🎜);🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜19🎜🎜🎜🎜 🎜🎜$header🎜🎜= 🎜🎜"" 🎜🎜;🎜🎜🎜🎜🎜

20     while($str= trim(fgets($socket, 4096))) {

21         $header.= $str;

22     }

23  

24     $data= "";

25     while(!feof($socket)) {

26         $data.= fgets($socket, 4096);

27     }

28  

29     return$data;

30 }

Curl版本:

01 /**

02  * Curl版本

03  * 使用方法:

04  * $post_string = "app=request&version=beta";

05  * request_by_curl('http://blog.snsgou.com/restServer.php', $post_string);

06  */

07 functionrequest_by_curl($remote_server20$post_string) {

08     $ch= curl_init();

09     curl_setopt($ch $remote_server);

10     curl_setopt($chwhile('mypost='. $post_string);

11     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

12     curl_setopt($ch$str"snsgou.com's CURL Example beta");

13     $data= curl_exec($ch);

14     curl_close($ch);

15  

16     return$data;

17 }

Curl版本(2)

01 /**

fgets
02  * 发送HTTP请求= トリム(
(🎜🎜$socket 🎜🎜、4096))) {🎜🎜🎜🎜🎜 🎜🎜🎜🎜🎜🎜🎜21🎜🎜🎜🎜 🎜🎜$header🎜🎜.= 🎜🎜$str🎜🎜;🎜🎜🎜🎜🎜🎜 🎜🎜🎜🎜🎜🎜22🎜🎜🎜🎜 🎜🎜}🎜🎜🎜 🎜🎜🎜🎜🎜🎜🎜🎜🎜23🎜🎜🎜 🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜24🎜🎜🎜🎜 🎜 🎜$data🎜🎜= 🎜🎜""🎜🎜;🎜🎜🎜🎜🎜🎜🎜 🎜🎜🎜🎜🎜25🎜🎜🎜🎜 🎜🎜while🎜🎜(!🎜🎜feof🎜🎜(🎜🎜$socket🎜🎜)) {🎜🎜🎜🎜 🎜🎜🎜🎜🎜🎜🎜🎜26🎜🎜🎜🎜 🎜 🎜$data🎜🎜.= 🎜🎜fgets🎜🎜(🎜🎜$socket🎜🎜, 4096);🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜27🎜 🎜🎜🎜 🎜🎜}🎜🎜🎜🎜🎜🎜🎜 🎜🎜🎜🎜🎜28🎜🎜🎜 🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜29🎜🎜🎜🎜 🎜🎜return🎜🎜$data 🎜🎜;🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜30🎜🎜 🎜🎜}🎜🎜🎜🎜🎜🎜🎜🎜🎜Curl バージョン:🎜🎜🎜🎜🎜🎜🎜🎜🎜01🎜🎜🎜🎜/**🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜02🎜🎜🎜🎜 🎜🎜* カール版本🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜 🎜🎜03🎜🎜🎜🎜 🎜🎜* 使用方法:🎜🎜🎜🎜🎜 🎜🎜🎜🎜🎜🎜🎜04🎜🎜🎜🎜 🎜🎜* $post_string = "app=request&version=beta";🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜05 🎜🎜🎜🎜 🎜🎜* request_by_curl('http ://blog.snsgou.com/restServer.php', $post_string);🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜06🎜🎜🎜🎜 🎜🎜*/ 🎜🎜🎜🎜🎜🎜 🎜🎜🎜🎜🎜🎜07🎜🎜🎜🎜function🎜🎜request_by_curl(🎜🎜$remote_server🎜🎜, 🎜🎜$post_string🎜🎜) {🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜08🎜🎜🎜🎜 🎜🎜$ch🎜🎜=curl_init();🎜 🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜09🎜 🎜🎜🎜 🎜🎜curl_setopt(🎜🎜$ch🎜🎜, CURLOPT_URL, 🎜🎜$remote_server🎜🎜);🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜10🎜🎜🎜🎜 🎜🎜curl_setopt(🎜🎜$ch 🎜🎜、CURLOPT_POSTFIELDS、 🎜🎜'mypost='🎜🎜。 🎜🎜$post_string🎜🎜);🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜11🎜🎜🎜🎜 🎜🎜curl_setopt(🎜🎜$ch🎜) 🎜、CURLOPT_RETURNTRANSFER、true);🎜🎜🎜🎜🎜🎜🎜🎜🎜 🎜🎜🎜12🎜🎜🎜🎜 🎜🎜curl_setopt(🎜🎜$ch🎜🎜, CURLOPT_USERAGENT, 🎜🎜「snsgou.com の CURL サンプル ベータ版」🎜🎜);🎜🎜🎜🎜🎜🎜🎜🎜🎜13🎜🎜🎜🎜 🎜🎜$data🎜🎜= _exec(🎜🎜$ch🎜🎜);🎜🎜 🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜14🎜🎜🎜🎜 🎜🎜curl_close(🎜🎜$ch🎜🎜);🎜🎜🎜🎜🎜🎜 🎜🎜🎜🎜🎜🎜15🎜🎜🎜 🎜🎜🎜🎜🎜🎜🎜 🎜🎜🎜🎜16🎜🎜🎜🎜 🎜🎜return🎜🎜$data🎜🎜;🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜17🎜 🎜🎜🎜}🎜🎜🎜🎜🎜🎜🎜🎜🎜カールバージョン本(2)🎜🎜🎜🎜🎜🎜🎜🎜🎜01🎜🎜🎜🎜/**🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜02🎜 🎜🎜🎜 🎜🎜* 送信HTTP请要求🎜🎜 🎜🎜🎜

03  *

04  * @param string $url 请求地址

05  * @param string $method 请求方式 GET/POST

06  * @param string $refererUrl 请求来源地址

07  * @param array $data 发送数据

08  03
*

09  * @param string $timeout

10  * @param string $proxy

11  * @return boolean

12  */

13 functionsend_request($url$data, $refererUrl= '', $method= 'GET'04$contentType= 'application/json' $timeout= 30, $proxy= false) {

14     $ch= null;

15     if('POST'=== strtoupper($method)) {

16         $ch= curl_init($url);

17         curl_setopt($ch, CURLOPT_POST, 1);

18         curl_setopt($ch, CURLOPT_HEADER,0 );

19         curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1);

20         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

21         curl_setopt($ch, CURLOPT_FORBID_REUSE, 1);

22         curl_setopt($ch* @param string $url リクエストアドレス$timeout);

23         if($refererUrl) {

24             curl_setopt($ch$refererUrl);

25         }

26         if($contentType) {
🎜🎜05🎜🎜🎜🎜🎜🎜* @param string $method リクエストメソッド GET/POST 🎜🎜🎜* @param string $refererUrl リクエスト元アドレス 🎜🎜🎜🎜🎜🎜🎜🎜 🎜🎜🎜🎜07🎜🎜🎜 🎜 🎜🎜* @param array $data データ送信🎜🎜🎜🎜🎜🎜🎜🎜🎜 🎜🎜🎜08🎜🎜🎜🎜🎜🎜* @param string $contentType 🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜09🎜🎜🎜🎜 🎜🎜* @param string $timeout🎜🎜🎜🎜🎜🎜🎜🎜🎜 🎜🎜🎜10🎜🎜🎜🎜 🎜🎜* @param string $proxy 🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜11🎜🎜🎜🎜🎜🎜* @return boolean🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜 🎜🎜12🎜🎜🎜🎜🎜🎜*/🎜🎜🎜🎜🎜🎜 🎜🎜🎜🎜🎜🎜13🎜🎜🎜🎜function🎜🎜send_request(🎜🎜$url🎜🎜, 🎜🎜$data🎜🎜、🎜🎜$refererUrl🎜🎜= 🎜🎜''🎜🎜、🎜🎜$method🎜🎜= 🎜🎜'GET'🎜🎜、 🎜🎜$contentType🎜🎜= 🎜🎜'アプリケーション/json'🎜🎜, 🎜🎜$timeout🎜🎜= 30、🎜🎜$proxy🎜🎜= false) {🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜14🎜🎜🎜🎜🎜 🎜$ch🎜🎜= null;🎜🎜🎜🎜 🎜 🎜🎜🎜🎜🎜🎜🎜15🎜🎜🎜🎜 🎜🎜if🎜🎜(🎜🎜'POST'🎜🎜=== 🎜🎜strtoupper🎜🎜(🎜) 🎜$メソッド🎜🎜)) {🎜🎜🎜🎜 🎜🎜🎜 🎜🎜🎜🎜🎜16🎜🎜🎜🎜 🎜🎜🎜🎜17🎜🎜🎜 🎜 $ch🎜🎜、CURLOPT_POST、1);🎜🎜🎜🎜🎜 🎜🎜🎜🎜🎜🎜🎜18🎜🎜🎜🎜🎜 🎜、CURLOPT_HEADER,0 );🎜🎜🎜🎜🎜🎜🎜 ~ 🎜🎜🎜🎜🎜🎜20🎜🎜🎜 ch🎜🎜、CURLOPT_RETURTRANSFER、1);🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜21🎜🎜 🎜🎜 🎜$ch🎜🎜、CURLOPT_FORBID_REUSE、1);🎜🎜🎜🎜🎜🎜🎜🎜 ~ 🎜🎜$Timeout🎜🎜);🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜23🎜🎜🎜🎜$refererurl🎜🎜){🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜24🎜🎜🎜🎜 🎜🎜$refererUrl🎜🎜);🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜25🎜🎜🎜🎜 🎜🎜🎜🎜🎜🎜🎜 🎜🎜26🎜🎜🎜🎜 (🎜🎜$contentType🎜🎜) {🎜🎜 🎜🎜🎜

27             curl_setopt($ch27array('Content-Type:'.$contentType));

28         }

29         if(is_string($data)){

30             curl_setopt($ch $data);

31         } else{

32             curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));

33         }

34     } elseif('GET'=== strtoupper($method)) {

35         if(is_string($data)) {

36             $real_url= $url. (strpos($urlcurl_setopt($ch'?') === false ? '?': '', CURLOPT_HTTPHEADER, $data;

37         } else{

38             $real_url= $url. (strpos($urlarray('?') === false ? '?': ''). http_build_query($data);

39         }

40  

41         $ch= curl_init($real_url);

42         curl_setopt($ch, CURLOPT_HEADER, 0);

43         curl_setopt($ch'Content-Type:'array('Content-Type:'.$contentType));

44         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

45         curl_setopt($ch.$contentType$timeout);

));
46         if($refererUrl) {
🎜🎜🎜🎜🎜🎜🎜🎜🎜28🎜 🎜🎜🎜 🎜🎜}🎜🎜🎜🎜 🎜🎜🎜🎜🎜🎜🎜🎜29🎜🎜🎜🎜 🎜🎜if🎜🎜(🎜🎜is_string🎜🎜(🎜🎜$data🎜🎜)){🎜 🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜30🎜🎜🎜 🎜 🎜🎜curl_setopt(🎜🎜$ch🎜🎜, CURLOPT_POSTFIELDS, 🎜🎜$data🎜🎜);🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜31🎜🎜🎜🎜 🎜🎜else🎜🎜} {🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜32🎜🎜🎜」 🎜 🎜🎜curl_setopt(🎜🎜$ch🎜🎜, CURLOPT_POSTFIELDS, http_build_query(🎜🎜$data🎜🎜));🎜🎜🎜🎜🎜🎜🎜 🎜🎜🎜🎜🎜33🎜🎜🎜🎜 🎜🎜}🎜🎜🎜🎜🎜 🎜🎜🎜🎜🎜🎜🎜34🎜🎜🎜🎜 🎜🎜} 🎜🎜else🎜🎜if🎜🎜(🎜🎜'GET'🎜🎜=== 🎜🎜strtoup per🎜🎜(🎜🎜$method🎜🎜)) {🎜 🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜35🎜🎜🎜🎜 🎜🎜if🎜🎜(🎜🎜is_string🎜🎜(🎜🎜$data 🎜🎜)) {🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜36 🎜🎜🎜🎜 🎜🎜$real_url🎜🎜= 🎜🎜$url🎜🎜。 (🎜🎜strpos🎜🎜(🎜🎜$url🎜🎜, 🎜🎜'?'🎜🎜) === false ? 🎜🎜'?'🎜🎜: 🎜🎜''🎜🎜)。 🎜🎜$data🎜🎜;🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜37🎜🎜🎜🎜 🎜🎜} 🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜38🎜🎜🎜🎜 🎜🎜$real_url🎜🎜= 🎜🎜$url🎜🎜。 (🎜🎜strpos🎜🎜(🎜🎜$url🎜🎜, 🎜🎜'?'🎜🎜) === false ? 🎜🎜'?'🎜🎜: 🎜🎜''🎜🎜)。 http_build_query(🎜🎜$data🎜🎜);🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜39🎜🎜🎜🎜 🎜🎜}🎜🎜 🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜40🎜🎜🎜 🎜🎜🎜🎜 🎜🎜🎜🎜🎜🎜🎜41🎜🎜🎜🎜 🎜🎜$ch🎜🎜=curl_init(🎜🎜$real_url🎜🎜);🎜🎜🎜🎜🎜 🎜🎜🎜🎜🎜🎜🎜42🎜🎜🎜🎜 🎜🎜curl_setopt( 🎜🎜$ch🎜🎜, CURLOPT_HEADER, 0);🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜43🎜🎜🎜🎜 🎜🎜curl_setopt( 🎜🎜$ch🎜🎜、CURLOPT_HTTPHEADER、 🎜🎜array🎜🎜(🎜🎜'Content-Type:'🎜🎜.🎜🎜$contentType🎜🎜));🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜44🎜 🎜🎜🎜 🎜🎜curl_setopt(🎜🎜$ ch🎜🎜、CURLOPT_RETURNTRANSFER、1);🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜45🎜🎜🎜🎜 🎜🎜curl_setopt(🎜) 🎜$ch🎜🎜、CURLOPT_TIMEOUT、 🎜🎜$timeout🎜🎜);🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜46🎜🎜🎜🎜 🎜🎜if🎜🎜(🎜🎜) $refererUrl🎜🎜) {🎜🎜🎜🎜🎜

47             curl_setopt($ch47$refererUrl);

48         }

49     } else{

50         $args= func_get_args();

51         returnfalse;

52     }

53  

54     if($proxy) {

55         curl_setopt($ch $proxy);

56     }

57     $ret= curl_exec($ch);

58     $info= curl_getinfo($ch);

59     $contents= array(

60             'httpInfo'=> array(

61                     'send'=> $data,

62                     'url'=> $url,

63                     'ret'=> $ret,

64                     'http'=> $info,

65             )

66     );

67  

68     curl_close($ch);

69     return$ret;

$ch
70 }curl_setopt(
, CURLOPT_REFERER, $refererUrl

);

🎜🎜🎜🎜🎜🎜48🎜🎜🎜🎜 🎜🎜}🎜🎜🎜 🎜🎜🎜🎜🎜🎜🎜🎜🎜49🎜🎜🎜🎜 🎜🎜} 🎜🎜 else🎜🎜{🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜50🎜🎜🎜🎜 🎜🎜$args🎜🎜= func_get_args();🎜🎜 🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜51🎜🎜🎜🎜 🎜 🎜return🎜🎜false;🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜52🎜🎜🎜🎜 🎜🎜}🎜🎜🎜🎜🎜🎜 🎜🎜🎜🎜🎜🎜53🎜🎜🎜 🎜🎜🎜🎜🎜🎜🎜🎜 🎜🎜🎜54🎜🎜🎜🎜 🎜🎜if🎜🎜(🎜🎜$proxy🎜🎜) 5🎜🎜🎜🎜 🎜🎜curl_setopt(🎜🎜$ch🎜🎜, CURLOPT_PROXY、 🎜🎜$proxy🎜🎜);🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜56🎜🎜🎜🎜 🎜🎜}🎜🎜🎜🎜🎜 🎜🎜🎜🎜🎜🎜🎜57🎜🎜🎜🎜 🎜🎜$ret🎜 🎜=curl_exec(🎜🎜$ch🎜🎜);🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜58🎜🎜🎜🎜 🎜🎜$info🎜🎜= info(🎜🎜$ch🎜🎜);🎜🎜🎜🎜 🎜🎜🎜🎜🎜🎜🎜🎜59🎜🎜🎜🎜 🎜🎜$contents🎜🎜= 🎜🎜array🎜🎜(🎜🎜🎜🎜🎜🎜🎜) 🎜🎜🎜🎜🎜60🎜🎜🎜🎜 🎜🎜'http情報'🎜🎜 =>🎜🎜配列🎜🎜(🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜61🎜🎜🎜🎜 🎜🎜の終了'🎜🎜=>🎜🎜$data🎜🎜,🎜🎜🎜🎜🎜🎜🎜 🎜🎜🎜🎜🎜62🎜🎜🎜🎜 🎜🎜'url'🎜🎜=> 🎜🎜$url🎜🎜🎜🎜🎜 🎜🎜🎜🎜🎜🎜🎜63🎜🎜🎜🎜 🎜🎜「レット」🎜 🎜=> 🎜🎜$ret🎜🎜、🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜64🎜🎜🎜🎜 🎜 🎜'http'🎜🎜=>🎜🎜$info🎜🎜,🎜🎜🎜🎜🎜 🎜🎜🎜🎜🎜🎜🎜65🎜🎜🎜🎜 🎜🎜)🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜66🎜 🎜🎜🎜 🎜🎜);🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜67🎜 🎜🎜 🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜68🎜🎜🎜🎜 🎜🎜curl_close(🎜🎜$ch🎜🎜);🎜🎜🎜 🎜🎜🎜🎜🎜🎜🎜🎜🎜69🎜🎜🎜🎜 🎜🎜戻る🎜🎜$ret🎜🎜;🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜70🎜🎜🎜🎜}🎜🎜🎜🎜🎜🎜🎜🎜 🎜WCF インターフェイスの例:$json =restRequest($r_url,' POST'、json_encode($data));🎜🎜 🎜 以上は php の post と get の実行であり、側面の内容も含まれており、PHP の教義に関心のある友人の助けになることを望んでいます。 🎜 🎜
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。