抑制/隐藏/丢弃输出而不缓冲到RAM

问题描述 投票:0回答:1

如何告诉 PHP 丢弃所有输出而不浪费 RAM 缓冲输出?

我认为这将是 PHP 中的一个简单且基本的功能,但它似乎不存在。 我正在尝试

include()
一个具有重要输出的 PHP 文件,但也设置了一些变量。 这次我只想要变量,而不是大输出。 在 Unix 中,这只是非常基本的
command &> /dev/null
,但在 PHP 中似乎不可能做同样的事情。

PHP 不支持标准

ob_
函数(例如
ob_discard()
ob_null_buffering()
或类似函数),这似乎很疯狂。 如果缓冲区在之后就会被丢弃,那么将缓冲区保存到 RAM 似乎是无意义的。

我唯一的选择是:

  1. 修改整个包含文件,以便在此上下文中调用时不输出任何内容
  2. 被迫使用
    ob_start()
    然后
    ob_end_clean()
  3. 对 RAM 进行打击
php
1个回答
0
投票

如评论中所述,根据 documentation,您可以在缓冲区上设置

chunk_size
并使用自定义
callback
。只要你不返回
false
,就不应该发出任何东西。

ob_start(fn() => null, chunk_size: 5);

echo 'Nothing happens with this';

演示:https://3v4l.org/kGPAX

在演示中我将返回

null
。那是不是
/dev/null
,但我认为它有助于视觉扫描时的心理模型。我还在演示中使用
5
作为
chunk_size
,但将其设置得太低可能会或可能不会产生后果。我会选择一些合理的,也许
1M

© www.soinside.com 2019 - 2024. All rights reserved.