Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中设置获取文件内容的时间限制?_Php - Fatal编程技术网

如何在PHP中设置获取文件内容的时间限制?

如何在PHP中设置获取文件内容的时间限制?,php,Php,有时,get_file_内容花费的时间太长,会挂起整个脚本。有没有办法在不修改脚本的最大执行时间的情况下,对get_file_内容设置超时限制 编辑: 它需要很长时间,因为该文件不存在。我收到“无法打开流:HTTP请求失败!”错误。但这需要永远的时间。在PHP>5.2.1中,似乎可以使用创建上下文 手册页面中的示例稍作修改: <?php $opts = array('http' => array( 'method' => 'GET',

有时,get_file_内容花费的时间太长,会挂起整个脚本。有没有办法在不修改脚本的最大执行时间的情况下,对get_file_内容设置超时限制

编辑:
它需要很长时间,因为该文件不存在。我收到“无法打开流:HTTP请求失败!”错误。但这需要永远的时间。

在PHP>5.2.1中,似乎可以使用创建上下文

手册页面中的示例稍作修改:

<?php

$opts = array('http' =>
    array(
        'method'  => 'GET',
        'timeout' => 120 
    )
);

$context  = stream_context_create($opts);

$result = file_get_contents('http://example.com/get.php', false, $context);

?>


在使用
文件获取内容之前,您可以先使用
ini\u set
并设置
默认套接字超时值
,然后在使用后恢复旧值-如果会影响代码的其他部分…

+1:我喜欢人们建议使用流(这是几乎没有人知道的PHP的伟大之处之一;-()如果达到指定的时间限制,函数将返回
FALSE
?因此我无法将超时错误与所有其他错误区分开来?此超时是否指定了整个请求的最长持续时间,从开始到结束?还是接收到的两个连续字节之间允许通过的最长时间?@Thomas,我不知道;我对此几乎没有经验。(这可能值得一个单独的问题,或者一个使用某种节流机制的实验)