phpのfile_get_contents、httpsocketで処理が止まってしまう場合の対策

2014年12月10日更新 view: 273 view
http://tagamidaiki.com/wp-content/uploads/2012/09/phplogo.png

ファイルを取得しようとすると、headerを返してくれなくて処理が止まる

以下のコードを処理しようとすると、ヘッダも返してくれず
途中で処理が強制終了してしまう。

504 gateway time-out が出る。

//取得できずに途中で止まる画像ファイル
$url = 'http://pic.enorth.com.cn/0/04/85/57/4855749_961621.jpg';

//取得できる画像ファイル
// $url = 'http://na-kaji.com/wp-content/uploads/2014/06/2013y07m04d_153142857.jpg';


$res = file_get_contents($url);
print_r($res);

途中で処理を止めずに続けたい

        $opts = array(
'http'=>array(
'timeout'=>5,
)
);

$url = 'http://pic.enorth.com.cn/0/04/85/57/4855749_961621.jpg';
// $url = 'http://na-kaji.com/wp-content/uploads/2014/06/2013y07m04d_153142857.jpg';

$context = stream_context_create($opts);


// Open the file using the HTTP headers set above
$file = @file_get_contents($url, false, $context);

if(!$file){
echo "ファイルを取得できませんでした";
} else {
echo "おk";
}
スポンサードリンク
  • こんな感じにするとファイルがあれば true
  • なければ false

で処理を分岐することができる。

スポンサードリンク

関連記事

関連カテゴリ

コロ助

web関連の記事や制作系の記事をどんどんまとめていきます。 宜しくお願いします!

ピックアップ

パソコン・ソフトウェア ランキング

4月21日 ( 土 ) にアクセスが多かった記事はこちら!