Как получить вывод PHP в переменную?

Я генерирую тонну XML, который должен быть передан API в качестве переменной post, когда пользователь нажимает кнопку формы. Я также хочу показать пользователю 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 генерируется с несколькими циклами и т. Д. Затем он должен отображаться в двух местах (предварительный просмотр и значение формы).

Мой вопрос. Как захватить сгенерированный XML в переменную или что-то еще, поэтому мне нужно только создать ее один раз, а затем просто распечатать ее как добавленную для ее создания внутри предварительного просмотра, а затем снова внутри значения формы?

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

Положите это на начало:

  ob_start (); 

И чтобы вернуть буфер:

  $ value = ob_get_contents ();
 ob_end_clean (); 

См. http://us2.php.net/manual/en/ref.outcontrol.php и отдельные функции для получения дополнительной информации.

Похоже, вы хотите буферизацию вывода PHP

 ob_start(); // make your XML file $out1 = ob_get_contents(); //$out1 now contains your XML 

Обратите внимание, что буферизация вывода останавливает вывод от отправки, пока вы не «сбросите» его. Дополнительную информацию см. В документации .

Вы можете попробовать следующее:

 <?php $string = <<<XMLDoc <?xml version='1.0'?> <doc> <title>XML Document</title> <lotsofxml/> <fruits> XMLDoc; $fruits = array('apple', 'banana', 'orange'); foreach($fruits as $fruit) { $string .= "\n <fruit>".$fruit."</fruit>"; } $string .= "\n </fruits> </doc>"; ?> <html> <!-- Show XML as HTML with entities; saves having to view source --> <pre><?=str_replace("<", "&lt;", str_replace(">", "&gt;", $string))?></pre> <textarea rows="8" cols="50"><?=$string?></textarea> </html>