php中file_get_contents超时问题的解决方法

发布时间:2019-11-12编辑:脚本学堂
本文介绍下,在php中使用file_get_contents时出现超时问题的解决方法,有需要的朋友可以作个参考。

有时会遇到file_get_contents超时的问题,file_get_contents一步就做完了打开,读取,关闭的三个动作,过程相当自动化,并且可以读取远程内容。
不过,在网络状况差的情况下,可能会导致程序执行陷入停滞或者过慢,因为不停的重试和等待PHP进程本身的超时才会退出。

本文分享下我的解决方法:
就是创建一个可以控制的资源句柄,通过控制资源句柄超时来控制file_get_contents这个方法的超时时间。

例子:
 

复制代码 代码示例:
<?php
$opts = array( 
 'http'=array( 
 'method'='GET', 
 'timeout'=1, //设置超时,单位是秒,可以试0.1之类的float类型数字 
 ) 
); 
$context = stream_context_create($opts); 
$contents = file_get_contents($url,false,$context);

方法不算完美,但可用,希望对大家有所帮助吧。