从类方法中删除回声 - PHP

时间:2017-06-09 12:26:35

标签: php

我试图从类外部的类方法中删除回声。我已设法使用此编码进行操作:

function rewrite() {
    $rewrite = new ReflectionMethod( 'WPLogin', 'head' );

    $filename = $rewrite->getFileName();
    $start_line = $rewrite->getStartLine();
    $end_line = $rewrite->getEndLine()-1;

    $length = $end_line - $start_line;
    $source = file($filename);
    $body = implode('', array_slice($source, $start_line, $length));
    $body = preg_replace( '/echo \'\<\!(.*?)\n/', '', $body);

    eval($body);
}

它有效,但它不能安全使用&#34;,因为它可能很棘手,而且正在使用eval,这是值得避免的。

有更好的方法可以做到这一点,或者至少有一种更安全的方法吗?

1 个答案:

答案 0 :(得分:3)

只需将方法调用包装在output buffer

ob_start();

// Call method here.

ob_end_clean();

这将删除该功能所做的任何输出,例如echoprint_rvar_dump