この記事では、PHP でリクエスト (GET リクエストと POST リクエスト) を送信するためのcurlの使い方を主に紹介します。編集者はそれが非常に優れていると考えたので、参考として共有します。エディターをフォローして見てみましょう
CURL を使用してリクエストを送信する基本プロセス
CURL の PHP 拡張機能を使用して HTTP リクエストの送信を完了するには、通常次の手順があります:
1. 接続を初期化します。ハンドル;
2. CURL オプションを設定します。
4. VURL 接続ハンドルを解放します。
// 1. 初始化 $ch = curl_init(); // 2. 设置选项,包括URL curl_setopt($ch,CURLOPT_URL,"http://www.devdo.net"); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_HEADER,0); // 3. 执行并获取HTML文档内容 $output = curl_exec($ch); if($output === FALSE ){ echo "CURL Error:".curl_error($ch); } // 4. 释放curl句柄 curl_close($ch);
上記のコードでは 4 つの関数が使用されています
②CURLOPT_RETURNTRANSFER は 1 に設定され、後で実行されるcurl_exec 関数の戻り値が、URL ではなく URL の戻り文字列であることを示します。戻り文字 文字列は標準出力に送られ、TRUE を返します。
③CURLLOPT_HEADER は 0 に設定され、HTTP ヘッダー情報が返されないことを示します。
curl_exec() 関数が実行された後、curl_getinfo() 関数を使用して CURL リクエスト出力の関連情報を取得できます。サンプルコードは次のとおりです。 :
curl_exec($ch); $info = curl_getinfo($sh); echo ' 获取 '.$info['url'].'耗时'.$info['total_time'].'秒';
上記 コードでは、curl_getinfo は次のデータを含む連想配列を返します:
CURL を使用して GET リクエストを送信する方法は、正しい形式で URL を組み立てることです。リクエストアドレスとGETデータは「?」で区切られ、次にGET変数の名前と値が「=」で区切られ、それぞれのGET名と値が「&」で結ばれます。 PHP は、GET リクエストとデータ部分を組み立てるために特に使用される関数 http_build_query を提供します。この関数は連想配列を受け取り、関連付けられたデータで記述された GET リクエスト文字列を返します。この関数を使用して、CURL が HTTP リクエストを送信する一般的なプロセスと組み合わせて、GET リクエストを送信する関数 doCurlGetRequest を閉じました。具体的なコードは次のとおりです:
/** *@desc 封闭curl的调用接口,get的请求方式。 */ function doCurlGetRequest($url,$data,$timeout = 5){ if($curl == "" || $timeout <= 0){ return false; } $url = $url.'?'.http_bulid_query($data); $con = curl_init((string)$url); curl_setopt($con, CURLOPT_HEADER, false); curl_setopt($con, CURLOPT_RETURNTRANSFER,true); curl_setopt($con, CURLOPT_TIMEOUT, (int)$timeout); return curl_exec($con); }
この関数は、組み立てられた GET パラメータを結合します。 http_build_query を使用 URL はcurl_init 関数に渡され、CURL を使用して HTTP リクエストが送信されます。
CURL が提供するオプション CURLOPT_POSTFIELDS を使用して、このオプションを POST 文字列データに設定して、リクエストを本文に含めることができます。同様に、POST リクエストを送信する関数 doCurlPostRequest を実装しました。コードは次のとおりです。
/** ** @desc 封装 curl 的调用接口,post的请求方式 **/ function doCurlPostRequest($url,$requestString,$timeout = 5){ if($url == '' || $requestString == '' || $timeout <=0){ return false; } $con = curl_init((string)$url); curl_setopt($con, CURLOPT_HEADER, false); curl_setopt($con, CURLOPT_POSTFIELDS, $requestString); curl_setopt($con, CURLOPT_POST,true); curl_setopt($con, CURLOPT_RETURNTRANSFER,true); curl_setopt($con, CURLOPT_TIMEOUT,(int)$timeout); return curl_exec($con); }
上記のコードで CURLOPT_POSTFIELDS を設定することに加えて、CURL_POST も true に設定して、このリクエストが送信されることを示します。は POST リクエストです。 GET データは POST リクエストで送信することもできます。必要なのは、GET リクエスト データを URL に組み込むことだけです。
以上がこの記事の全内容です。皆さんの学習に役立つことを願っています。また、皆さんも PHP 中国語 Web サイトをサポートしていただければ幸いです。
カールを使用して PHP でリクエスト (GET リクエストと POST リクエスト) を送信することに関するその他の記事については、PHP 中国語 Web サイトに注目してください。
関連記事:
PHPがcurl関数を使ってgetリクエストを開始する際のURLのパラメータ問題