我正在使用file_get_contents,并且我想要define a timeout。我试着通过创建一个这样的上下文来实现:
$timeout = array('http' => array('timeout' => 6));
$context = stream_context_create($timeout);
$xml = file_get_contents($hostName,false,$context);但是它忽略了这个值。
发布于 2013-09-20 04:25:10
我想默认的超时设置是60秒。您可以将其更改为您想要的任何值。
<?php
$ctx=stream_context_create(array('http'=>
array(
'timeout' => 30 // 30 sec
)
));
$conetnt = file_get_contents('http://example.com',false,$ctx);
var_dump($conetnt);
?>发布于 2012-04-17 18:16:43
从PHP5.2.1开始,您可以指定timeout上下文选项并将上下文传递给file_get_contents()
ini_set('default_socket_timeout', 120);发布于 2012-06-28 14:43:49
由于我仍然不能发表评论(并编辑或标记问题(作为重复的(?)可能在这种情况下不太合适),让我添加一个后续问题,并添加一个注释作为答案:
您的意思是说,即使您设置了一个超时时间,比如说1秒,file_get_contents()也会花费更多的时间,并且不会超时?您是否有任何低级监控可用来区分“连接”和“读取”数据所需的时间?
(我意识到这是一个老问题,但我在搜索过程中遇到了这两个问题,因为我也有同样的问题,所以我想我应该在它们之间建立链接)
https://stackoverflow.com/questions/10189232
复制相似问题