httpリクエスト1
○要因
あるサイトのhtmlソースを取得したいとき
<?php $url='http://○○○○.html'; $hmtl=file_get_contens($url); var_dump($html); ?>
で取得できる・・・
とおもっていた。
取得できない場合
failed to open stream: Connection timed out in .....
となる。
なぜだろう...?これは、サーバーから帰ってくる情報を見てみる必要があるな。
○調査
chrome app には便利なものがあって、
Advanced REST client - Chrome ウェブストア
でサーバーからの情報を取得できる。
使えるものはなんでも使おう。
□結果
「httpのステータスが302 Found」になっている。
ググると
302 Found 発見した。リクエストしたリソースが一時的に移動されているときに返される。 Location:ヘッダに移動先のURLが示されている。
なるほど、つまり今回入力したurlはアクセスすると移動する(つまりリダイレクトする)のか!
○考察
file_get_contens()では取得先urlがリダイレクトするようになっているとgetできない。
○次回
file_get_contensは上記のような問題があるので、urlからファイルにアクセスするときは使わない。
代わりの関数を使う
qiita.com
phpにはcurlがあり、この関数はurl先の状態を細かく設定できる。これを使っていく。
<今回はここまで>