PHP 命令行上的输出缓冲
我有一个 PHP 脚本,我想在命令行上运行。除其他事项外,该脚本需要加载包含 PHP 和 HTML 内容的 PHP 文件,并从该文件获取渲染的输出。
该代码完全符合我的需要,但从命令行运行时则不然:
<?php
// ...
if(file_exists($content_file)) {
ob_start();
include($content_file);
$content = ob_get_contents();
ob_end_clean();
}
?>
在浏览器中运行时,我的脚本通过 include() 获取 PHP 文件的渲染输出,并将输出存储在 $content 中。
但是,当我在命令行上执行此脚本时,PHP 文件的内容将被回显,并且 $content 永远不会被设置。
我搜索了文档,但似乎没有任何效果。调用 ini_set('implicit_flush', false) 没有效果,ob_implicit_flush(0); 也没有效果。
有什么想法吗?
I have a PHP script that I want to run on the command line. This script, among other things, needs to load a PHP file that contains both PHP and HTML content and get the rendered output from that file.
This code does exactly what I need, but not when run from the command line:
<?php
// ...
if(file_exists($content_file)) {
ob_start();
include($content_file);
$content = ob_get_contents();
ob_end_clean();
}
?>
When run in the browser, my script gets the rendered output of the PHP file via include(), and stores the output in $content.
However, when I execute this script on the command line, the contents of the PHP file are echoed out, and $content never gets set.
I've searched the documentation, but nothing seems to work. Calling ini_set('implicit_flush', false) has no effect, nor does ob_implicit_flush(0);
Any thoughts?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我无法使用 PHP 5.3 重复此问题。
在交互式提示下:
I am unable to duplicate this problem using PHP 5.3.
And at the interactive prompt: