将回声捕获到变量中

2021/01/30 23:21 · php ·  · 0评论

我正在使用动态函数名称来调用函数(类似这样)

$unsafeFunctionName = $_POST['function_name'];
$safeFunctionName   = safe($unsafeFunctionName); // custom safe() function

然后我想在函数的返回值周围包装一些xml(类似这样):

// xml header etc already created
$result = "<return_value>" . $safeFunctionName() . "</return_value>";

问题是,有时函数返回一个值,但有时函数回显是一个值。我想做的就是将回声捕获到一个变量中,但是,我编写的代码需要以任何一种方式工作(意味着,如果函数返回一个值,或者回声是一个字符串)。

不太确定从哪里开始〜有什么想法吗?

我先说一下:

自定义函数调用业务时要小心。我假设您知道这可能有多危险,这就是为什么要以某种方式清洁它。

除此之外,您想要的就是输出缓冲

function hello() {
    print "Hello World";
}
ob_start();
hello();
$output = ob_get_clean();
print "--" . $output . "--";

(我添加了破折号以表明它最初并未被打印)

以上将输出 --Hello World--

PHP:ob_get_contents

ob_start(); //Start output buffer
echo "abc123";
$output = ob_get_contents(); //Grab output
ob_end_clean(); //Discard output buffer

为了使用输出值(如果存在)或返回值(如果不存在),您可以像这样简单地修改代码:

ob_start();
$return_val = $safeFunctionName();
$echo_val = ob_get_clean();
$result = "<return_value>" . (strlen($echo_val) ? $echo_val : $return_val) . "</return_value>";
本文地址:http://php.askforanswer.com/jianghuishengbuhuodaobianliangzhong.html
文章标签:
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!