file_get_contents设置响应时间timeout的方法

curl有curlopt_connecttimeout可设,fsockopen有$timeout可设,而file_get_contents和fopen在打开url时,都不可设置响应时间timeout。如果url长时间没有响应,file_get_contents 会跳过短时间内没有响应的,而fopen会一直停留着等待,那么您的服务器就很可能挂了。

file_get_contents设置timeout的两种方法:

第一种方法:
<?php
$url='"http://www.zzsky.cn';
$timeout=10;//等待10秒
$old_timeout=ini_get('default_socket_timeout');
ini_set('default_socket_timeout',$timeout);
$contents=file_get_contents($url);
ini_set('default_socket_timeout',$old_timeout);
?>


第二种方法:
<?php
$url='"http://www.zzsky.cn';
$ctx=stream_context_create(array(
'http'=>array(
        'timeout'=>10//等待10秒
        )
    )
);
return file_get_contents($url,0,$ctx);
?>

你可能感兴趣的:(PHP,职场,超时,休闲)