如何将 PHP 输出捕获到变量中?

2022-08-30 09:04:36

我正在生成大量XML,当用户单击表单按钮时,这些XML将作为post变量传递给API。我还希望能够事先向用户显示 XML。

代码在结构上类似于以下内容:

<?php
    $lots of = "php";
?>

<xml>
    <morexml>

<?php
    while(){
?>
    <somegeneratedxml>
<?php } ?>

<lastofthexml>

<?php ?>

<html>
    <pre>
      The XML for the user to preview
    </pre>

    <form>
        <input id="xml" value="theXMLagain" />
    </form>
</html>

我的 XML 是使用一些 while 循环和内容生成的。然后,它需要显示在两个位置(预览和表单值)。

我的问题是。我如何在变量或其他任何东西中捕获生成的XML,这样我只需要生成一次,然后将其打印出来,以便在预览中生成它,然后在表单值内再次生成?


答案 1
<?php ob_start(); ?>
<xml/>
<?php $xml = ob_get_clean(); ?>
<input value="<?php echo $xml ?>" />͏͏͏͏͏͏

答案 2

把它放在你的开头:

ob_start();

并取回缓冲区:

$value = ob_get_contents();
ob_end_clean();

有关详细信息,请参阅 http://us2.php.net/manual/en/ref.outcontrol.php 和各个函数。


推荐