Php 文件\u获取\u内容超时

Php 文件\u获取\u内容超时,php,timeout,file-get-contents,Php,Timeout,File Get Contents,我正在使用,我想。我试图通过创建这样的上下文来实现这一点: $timeout = array('http' => array('timeout' => 6)); $context = stream_context_create($timeout); $xml = file_get_contents($hostName,false,$context); 但是它忽略了这个值。从PHP5.2.1开始,您可以指定超时上下文选项并将上下文传递给文件\u get\u contents()

我正在使用,我想。我试图通过创建这样的上下文来实现这一点:

$timeout = array('http' => array('timeout' => 6));

$context = stream_context_create($timeout);

$xml = file_get_contents($hostName,false,$context);

但是它忽略了这个值。

从PHP5.2.1开始,您可以指定
超时
上下文选项并将上下文传递给文件\u get\u contents()


从PHP5.2.1开始,您可以指定
timeout
context选项并将上下文传递给文件\u get\u contents()


由于我仍然无法发表评论(在这种情况下,编辑或标记问题(作为重复(?)可能不太合适),让我添加一个后续问题和一条评论作为回答:

  • 当你说:
    我给超时分配了一个很小的值,尽管有这个文件,\u get\u contents返回了很好的结果

您的意思是说,即使您将超时设置为(比如)1秒,file_get_contents()也会占用更多的时间,并且不会超时吗?您是否有任何低级别监控可用于区分“连接”和“读取”数据所需的时间

  • 因为正如Fanis在回答问题“”时所说,如果您使用的是“file_get_contents()”(而不是较低级别的套接字函数),则“连接”到远程服务器的时间无法通过可用的ini设置或上下文条目来设置。您只能通过这些设置“读取”超时

(我意识到这是一个老问题,但我在搜索中遇到了这两个问题,因为我有相同的问题,我认为我应该在它们之间建立链接)

因为我仍然无法评论(编辑或标记问题(作为重复(?)在这种情况下可能不太合适),让我添加一个后续问题,并以评论作为回答:

  • 当你说:
    我给超时分配了一个很小的值,尽管有这个文件,\u get\u contents返回了很好的结果

您的意思是说,即使您将超时设置为(比如)1秒,file_get_contents()也会占用更多的时间,并且不会超时吗?您是否有任何低级别监控可用于区分“连接”和“读取”数据所需的时间

  • 因为正如Fanis在回答问题“”时所说,如果您使用的是“file_get_contents()”(而不是较低级别的套接字函数),则“连接”到远程服务器的时间无法通过可用的ini设置或上下文条目来设置。您只能通过这些设置“读取”超时

(我意识到这是一个老问题,但我在搜索中遇到了这两个问题,因为我遇到了同一个问题,我认为应该设置它们之间的链接)

我想默认的超时设置是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);
?>

我想默认的超时设置是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);
?>


你怎么能说它忽略了超时设置呢?
timeout
是在5.2.1中添加的,请检查你的PHP版本。我给超时指定了一个小值,尽管这个文件的内容返回了良好的结果,你能说它忽略了超时设置吗?
timeout
是在5.2.1中添加的,检查您的PHP版本。我为超时指定了一个小值,尽管此文件的内容返回了良好的结果,但我已经尝试了此ini设置(“默认套接字超时”,5)$xml=文件获取内容($hostName);但它不起作用,我已经尝试过这个ini设置(“默认套接字超时”,5)$xml=文件获取内容($hostName);但它不起作用