file_get_contents よりもパフォーマンスが良い cURL を使う。
cURL の使い方
PHP を cURL サポート機能付きでコンパイルすると、 curl 関数を使用可能となる。
1. curl_init() により cURL セッションを初期化
2. curl_setopt() により転送時のオプションを設定
3. curl_exec() により転送を実行
4. curl_close() によりセッションを終了
【 サンプルコード 】
※ cURL で JSON データを取得/更新
try{ // セッションを初期化 $ch = curl_init(); // 転送時のオプションを設定 if($request == "POST"){ $param_arr = http_build_query($param_arr); curl_setopt($ch, CURLOPT_POST, TRUE); curl_setopt($ch, CURLOPT_POSTFIELDS, $param_arr); }else{ curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE" ); } curl_setopt($ch, CURLOPT_URL, $access_url); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 転送を実行 $strResponse = curl_exec($ch); // エラー番号を取得 $curlErrno = curl_errno($ch); if($curlErrno){ $curlError = curl_error($ch); throw new Exception($curlError); } // セッションを終了 curl_close($ch); // JSON 文字列をデコード $result = json_decode($strResponse, true); $arr = array( 'code' => $result["meta"]["code"], 'ret_data' => $result["data"] ); // 文字列をエンコード $encode = json_encode($arr); header("Content-Type:text/javascript; charset=utf-8");// for debug echo $encode; exit; } catch (Exception $e) { echo "Exception-".$e->getMessage(); }
※今回(Instagram API)は、データの更新(DELETE)に CURLOPT_CUSTOMREQUEST というカスタムメソッドを使用。
CURLOPT_CUSTOMREQUEST ….. HTTP リクエストで “GET” あるいは “HEAD” 以外に 使用するカスタムメソッド。
これが有用なのは、”DELETE” やその他のあまり知られていない HTTP リクエストを実行する場合です。
これが有用なのは、”DELETE” やその他のあまり知られていない HTTP リクエストを実行する場合です。