当前位置: 首页 > 知识库问答 >
问题:

Fopen或File\u Put\u内容超时选项?

郑茂勋
2023-03-14

非常简单的一个,我只是想在fOpen或File_Put_Content中添加一个超时。

等待时间太长,此文件正在本地写入文件,如果无法访问或写入该文件,则需要立即发出错误消息,而不是在30秒后。

我试过了

php.ini default_socket_timeout = 5   // Made no change

PHP文件内部:

ini_set('default_socket_timeout',2); // Made no change 

尝试了以下代码:

                $context = stream_context_create(array('http'=> array(     'timeout' => 1.0,     'ignore_errors' => true, )));
                $fh = @file_put_contents($file, $string, false, $context);

除了写一个If语句,从X秒开始倒计时,然后Rest一下退出循环之外,我已经没有什么想法了。

我只想创建一个包含一些内容的文本文件,如果它无法在几秒钟内写出该文件,则继续(以便触发错误)

 if (!is_resource($fh)) { 
// some error handling 
}

通过文档,我什么也没看到,除了这两种方法,还有没有其他选项可以用来设置一个简单的超时

共有1个答案

逄烨
2023-03-14

使用不同的设置:

set_time_limit(10);

set_time_limit限制脚本的最大执行时间。如果达到该值,脚本将返回一个致命错误。默认限制为30秒。

 类似资料:
  • 我已经阅读了php的手册页面上的file_get_contents函数,它没有说明任何关于如何file_get_contents行为关于php的文件锁定。然而,在评论部分,用户克里斯建议 file_get_内容通常不考虑PHP的群集锁定,即建议锁定。 您可以使用一些额外的代码来请求共享锁,例如... 我已经成功地测试过了。我还测试了即使文件已锁定专门有可能有另一个php进程通过读取文件,因为注释会

  • 我在使用file\u get\u内容与$\u get组合时遇到问题。例如,我尝试使用文件\u get\u内容加载以下页面: https://bing.com/?q=how 打领带 如果我像这样加载它,页面加载正常: http://localhost/load1.php 然而,当我这样加载它时,我有问题: http://localhost/load2.php?url=https//bing.com/

  • PHP/Apache2中的文件获取内容是从Facebook获取用户图片。直到最近,它一直运转良好。现在,它总是在一分钟后超时,在我的Apache2 error.log中有以下错误: PHP警告:文件\u获取\u内容(https://graph.facebook.com/999999999/picture?width=200):无法打开流:连接超时 下面是代码(我最近添加了$context以查看它是

  • 描述 (Description) C库函数FILE *fopen(const char *filename, const char *mode)使用给定mode打开filename指向的文件名。 声明 (Declaration) 以下是fopen()函数的声明。 FILE *fopen(const char *filename, const char *mode) 参数 (Parameters)

  • 我有一个问题与PHP脚本在我的网络服务器(Apache/2.4.10在Raspbian),我不能生成一个新的文件。我试过chmod 777(这是非常糟糕的做法),但它仍然不起作用。我已经为此挣扎了几天,即使经过广泛的研究,我也找不到解决这个问题的方法。下面是我的代码和它产生的错误消息: 警告:fopen(newfile.txt):无法打开流:第4行 /var/www/html/handlers/w

  • 我有一种情况,其中两个WebServer是用nginx作为loadbalancer设置的,它们本身是后端。发行版是Debian Wheezy。两台服务器上的配置相同(四核32GB RAM) TCP协议