Я генерирую тонну XML, который должен быть передан 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 сгенерирован с несколькими циклами с условием продолжения и материалом. Это тогда нужно показать в двух местах (предварительный просмотр и значение формы).
Мой вопрос. Как я получаю сгенерированный 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
$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>
Это кажется, что Вы хотите Вывод PHP, Буферизующий
ob_start();
// make your XML file
$out1 = ob_get_contents();
//$out1 now contains your XML
Сообщение, которое выходная буферизация мешает выводу быть отправленной, пока Вы не "сбрасываете" его. Посмотрите Документация для большего количества информации