2011/11/16

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


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

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

今回はタイムアウトする時間を変更して対応した。
  1. //後で戻せるように設定を取得しておく  
  2. $org_timeout = ini_get('default_socket_timeout');  
  3.   
  4. //5秒以上かかったらタイムアウトする設定に変更  
  5. $timeout_second = 5;  
  6. ini_set('default_socket_timeout'$timeout_second);  
  7.   
  8. $data = file_get_contents($url);  
  9.   
  10. //設定を戻す  
  11. ini_set('default_socket_timeout'$org_timeout);  


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

0 件のコメント:

コメントを投稿