file_get_contents関数でタイムアウトが効かない

「効かない」でなくて、使う人が仕様を勘違いしているだけです。

関数 timeoutの概念 説明
file_get_contents パケットタイムアウト
スレッド実行時間ではない
パケット通信時間がタイムアウト時間を超えた場合に限り、処理を中断する。
接続が正常なら読み込み終わるまで処理を続ける。
標準関数
curl_exe CURLOPT_TIMEOUT cURL 関数の実行にかけられる時間の最大値。
関数のスレッドの実行時間
タイムアウト時間が経過しても終わっていない場合は、処理を中断する
標準モジュール
curl
CURLOPT_CONNECTTIMEOUT 接続の試行を待ち続ける秒数。0 は永遠に待ち続けることを意味します。
http_get 関数のスレッドの実行時間 タイムアウト時間が経過しても終わっていない場合は、処理を中断する peclモジュール
http  1.x

webスクリプトから サイズのわからない または、得体のしれないサイトへ接続を要求するときは、
file_get_contentsは使ってはだめってことです。

» 続きを読む