【发布时间】:2022-01-14 06:27:59
【问题描述】:
真的很简单,我只想在 fOpen 或 File_Put_Content 中添加一个超时 目前看来超时设置为 30 秒。
等待的时间太长了,该文件正在本地写入文件,如果无法访问或写入文件,则需要立即触发错误消息,而不是在 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 秒开始倒计时然后做一个 break 退出循环之外,我有点没有想法了。
我只想创建一个包含一些内容的文本文件,如果它无法在几秒钟内将文件写出然后继续前进(所以我可以触发错误)
if (!is_resource($fh)) {
// some error handling
}
通过文档,我什么也没看到,除了这两种方法,还有其他选项可以用来设置简单的超时
【问题讨论】:
-
"此文件正在本地写入文件" - 你的意思是你正在写入本地文件系统?那么你想要什么 HTTP 超时,甚至不适用......?
标签: php timeout fopen file-put-contents