繁体   English   中英

如何将echo()的结果捕获到PHP中的变量中?

[英]How do I capture the result of an echo() into a variable in PHP?

我正在使用一个回显结果而不是返回结果的PHP库。 有没有一种简单的方法来捕获echo / print的输出并将其存储在变量中? (已输出其他文本,并且未使用输出缓冲。)

可以使用输出缓冲:

ob_start();

function test ($var) {
    echo $var;
}

test("hello");
$content = ob_get_clean();

var_dump($content); // string(5) "hello"

但它不是一个干净,有趣的语法。 找到一个更好的图书馆可能是一个好主意......

我知道的唯一方法。

ob_start();
echo "Some String";
$var = ob_get_clean();

如果可以的话,你应该真的重写这个课程。 我怀疑找到echo / print语句并用$output .=替换它们很难$output .= 使用ob_xxx确实需要资源。

例如,在您的应用程序完全完成之前,最好不要回显数据

<?php
echo 'Start';

session_start();
?>

现在session_start和另一串函数不起作用,因为已经有数据作为响应输出,但是通过执行以下操作:

<?php
$output = 'Start';

session_start();

echo $output;
?>

这可以工作,并且它不易出错,但是如果它必须要捕获输出,那么你会这样做:

ob_start();

//Whatever you want here

$data = ob_get_contents();

//Then we clean out that buffer with:
ob_end_clean();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM