2011/11/16

[PHP] file_get_contents でタイムアウトする時間を設定する


file_get_contentsでhttp://から指定したURLを読み込む時に、読み込みたいページからレスポンスがないと、プログラムがそこで止まってしまう。

デフォルトの設定だと60秒とかになってるんで、まあ、待つ人おらんよね。

今回はタイムアウトする時間を変更して対応した。
//後で戻せるように設定を取得しておく
$org_timeout = ini_get('default_socket_timeout');

//5秒以上かかったらタイムアウトする設定に変更
$timeout_second = 5;
ini_set('default_socket_timeout', $timeout_second);

$data = file_get_contents($url);

//設定を戻す
ini_set('default_socket_timeout', $org_timeout);


ini_set以外の方法を教えてくれているページがありましたので、参考に↓
[PHP]file_get_contentsのタイムアウトの制御とかレスポンスヘッダのバッドノウハウ

0 件のコメント:

コメントを投稿