人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

phpで外部ファイルをfile_get_contentsなどで読み込むとき、
ファイルが他サーバーの場合は「サーバー落ち」や「アクセス過多」などでエラーになる場合があります。

例えば、ファイル読み込み時に「503」エラーだったりすると、読み込みが失敗してwarningが出ます。

httpリクエストでheadのレスポンスコードを見て、それから正常なら正式リクエストを送る方法を試しています。

でも、正式リクエストでエラーだったら結局エラーwarningが表示されてしまう気がします。

これを回避するためには、どのようにすればよいのでしょうか?
なにかアドバイスを頂けると助かります。

●質問者: onigirin
●カテゴリ:ウェブ制作
✍キーワード:HTTP PHP Warning それから アクセス
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● t_shiono
●35ポイント ベストアンサー

試していませんが、PEARのHTTP_Requestとかを利用すると同でしょうか?

warningが出ないかは確認してませんが、大丈夫だったような気がします。間違っていたらすいません。

◎質問者からの返答

ありがとうございます。

file_get_contentsをやめてHTTP_Requestで試してみます。

PEARは本当にいろいろありますねぇ。

普通にコードを書かなくていろいろ実現できるのは便利な反面、

自分のレベルを超えた問題に出合ったときに

対処不能になりそうなのが怖いです。。。


2 ● mlkc81
●35ポイント

自分も試してはいないので、想像で申し訳ありませんが、一度ダウンロードする形にしてみてはいかがでしょうか?

ダウンロードではエラー表示を抑制し、ダウンロードで成功した場合のみ、ダウンロードしたファイルを読み込む形にすれば、ダウンロード成功するならば、必ずエラー表示を出さないでファイルを読み込むことが出来るかと思います。

ダウンロードの成功の判断が手間になりそうな気はしますが・・・。PHPのcURLライブラリ辺りが使えるのではないかと思います。

◎質問者からの返答

ありがとうございます。

一度こちらに保存してからなら、確実性は高いですね。

cURLに関する情報があまり見かけませんが、

なかなか便利そうなライブラリですね。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ