Я генерирую тонну 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("<", "<", str_replace(">", ">", $string))?></pre> <textarea rows="8" cols="50"><?=$string?></textarea> </html>