A4 WORKS Official BLOG

A4 WORKS オフィシャルブログ

file_get_contensでPOSTリクエスト

   

file_get_contensでファイルパスの代わりにURLを指定することで、手軽かつ簡易に外部のサイトからソースを取得することができ、WebAPIからデータを取得するなどに重宝します。

ただ、PHPの日本語マニュアルで翻訳されてる範囲だけみるとGETの説明しかなく何となくPOSTできないのかも。といった雰囲気を醸し出しています。

http://php.net/manual/ja/function.file-get-contents.php

説明、パラメータ・・・・例、変更履歴、注意、参考のもう一段下のUser Contributed Notesをみると

‘method’  => ‘POST’,

と記述があります。

stream_context_createと合わせて使うことでfile_get_contensでもPOSTリクエストを送ることができレスポンスボディを取得できます。

curlを使う方法など他にも方法があるのですが、わりと手軽なのでfile_get_contensは個人的によく使います。

リクエストに失敗した場合はfalseが返ります。

PHPのマニュアルにあるとおり、相手先のサーバーがIISだとPHPがエラーを返す場合があるらしいので、@付けエラー表示を抑制するなどの対応も行います。

リクエスト先がWebAPIなどで、HTTPのレスポンスコードが事後の処理に影響を及ぼす場合には、$http_response_header を合わせて使用します。

file_get_contensでリクエストを行うと$http_response_headerにレスポンスコードが格納されるので、内容を適宜チェックし、事後の処理を行う事ができます。

安易に対応するならこんな感じです。

環境によってcurlが使えないとかあれば file_get_contens の事を思い出して頂ければと。

 - PHP

STINGERレクタングル大

STINGERレクタングル大

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

  関連記事

bitbucket-slack
BitbucketのPull RequestをSlackに通知するWeb API

BitbucketのWebhookと、SlackのWebAPIを組み合わせせる事 …

php_icon
PHPでAPCを有効にするとclass not foundになる現象

最近はLINEスタンプのネタばかりだったので、久々の技術ネタです。 4年ほど前に …

fuelPHP_icon
FuelPHPでSmartyを使う

以前のエントリ「FuelPHPを使ってみる」の続きです。 Twigを導入するか迷 …

no image
PHPの名前空間を実際に使ってみた。

A4 WORKS 新人の池田です。 “ブログを書くことで学べる事も多 …

php_icon
memcachedのインストールとPHPの対応

AWSのサーバーにmemcachedをインストールしたので備忘録。 memcac …

Google Developers PageSpeed Insights_icon
Google Developers PageSpeed Insightsを活用してパフォーマンスチューニング

PageSpeed Insightsのトップページに書いてあるんですが「あらゆる …

fuelPHP_icon
FuelPHPを使ってみる

ゲーム開発プロジェクトのサーバー側(アプリと連携させるAPIとか管理機能とか)を …

fuelPHP_icon
FuelPHPのとっかかりの際に目を通してほしいスライド

公式のドキュメントも分かりやすく整理されているとはおもいますが、このスライドが要 …