关于file_get_contents函数超时的解决方法

今天在测试天气预报系统的时候发现一个问题,就是在网络状况比较差的情况下file_get_contents函数经常读取远程数据失败。经过Google和自己的一番测试,解决方案如下:

<?php
/*设置超时配合失败之后尝试多次读取,效果比原先好很多*/
          $opts = array( 
           'http'=>array( 
	         'method'=>"GET", 
	         'timeout'=>1, //设置超时
		) 
	); 
	$context = stream_context_create($opts); 
	$cnt=1; //最多尝试10次读取
          while(($contents = @file_get_contents("$url",false,$context)) === false && $cnt <= 10  )
		$cnt++;
?>

相关日志

Leave a Reply