5

Twig 不会处理 PHP 标签。因此,phpinfo()基于布局(例如base.html.twig)创建页面是一项挑战。

是否可以将 HTML 内容转储phpinfo()到某个变量中并将其作为正文内容传递给布局?或者,有没有更好的方法继续?

4

4 回答 4

7

只需使用输出缓冲捕获输出phpinfo(),并将其传递给模板。

ob_start();
phpinfo();
$phpinfo = ob_get_clean();

echo $twig->render('phpinfo.html.twig', array('phpinfo' => $phpinfo));
于 2015-10-03T20:40:15.560 回答
2

这是对 Federkun 回答的补充。在控制器中:

ob_start();
phpinfo();
$phpinfo = ob_get_contents();
ob_end_clean();
return $this->render('phpinfo.html.twig', array(
    'phpinfo'=>$phpinfo,
));

别忘了放一个 | 生在树枝上!

{{ phpinfo | raw }}
于 2018-01-26T07:10:09.383 回答
1
class DefaultController extends Controller
{
    /**
     * @Route("/", name="index")
     * @Method("GET")
     */
    public function index()
    {
        ob_start();
        phpinfo();
        $phpinfo = ob_get_clean();

        return new Response(
            '<html><body>'.$phpinfo.'</body></html>'
        );
    }
}
于 2018-09-10T10:11:04.767 回答
0

使用 Symfony,如果您只需要检查phpinfo()的输出,您可以dump(phpinfo())在控制器内部使用,您将获得基本phpinfo()的输出。还可以调用phpinfo()作为Response对象的参数然后返回它:

class DefaultController extends AbstractController
{
   /**
    * @Route("/", name="default")
    */
   public function index()
   {
       dump(phpinfo());

       // Then return something else, or call directly phpinfo() on return, like bellow
       return new Response(phpinfo());
   }
}
于 2020-09-28T14:38:29.340 回答