如何告诉 PHP 丢弃所有输出而不浪费 RAM 缓冲输出?
我认为这将是 PHP 中的一个简单且基本的功能,但它似乎不存在。 我正在尝试
include()
一个具有重要输出的 PHP 文件,但也设置了一些变量。 这次我只想要变量,而不是大输出。 在 Unix 中,这只是非常基本的 command &> /dev/null
,但在 PHP 中似乎不可能做同样的事情。
PHP 不支持标准
ob_
函数(例如 ob_discard()
或 ob_null_buffering()
或类似函数),这似乎很疯狂。 如果缓冲区在之后就会被丢弃,那么将缓冲区保存到 RAM 似乎是无意义的。
我唯一的选择是:
ob_start()
然后 ob_end_clean()
如评论中所述,根据 documentation,您可以在缓冲区上设置
chunk_size
并使用自定义 callback
。只要你不返回false
,就不应该发出任何东西。
ob_start(fn() => null, chunk_size: 5);
echo 'Nothing happens with this';
在演示中我将返回
null
。那是不是/dev/null
,但我认为它有助于视觉扫描时的心理模型。我还在演示中使用 5
作为 chunk_size
,但将其设置得太低可能会或可能不会产生后果。我会选择一些合理的,也许1M
?