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

Я генерирую тонну 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 в переменной или безотносительно таким образом, я только должен генерировать его однажды и затем просто распечатать его, как соединено к генерации его в предварительном просмотре и с другой стороны в значении формы?

53
задан 05.10.2008, 15:27

4 ответа

<?php ob_start(); ?>
<xml/>
<?php $xml = ob_get_clean(); ?>
<input value="<?php echo $xml ?>" />͏͏͏͏͏͏
100
ответ дан 03.08.2019, 21:30

Поместите это в свой запуск:

ob_start();

И вернуть буфер:

$value = ob_get_contents();
ob_end_clean();

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

42
ответ дан 03.08.2019, 21:30

Вы могли попробовать это:

<?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>
1
ответ дан 03.08.2019, 21:30

Это кажется, что Вы хотите Вывод PHP, Буферизующий

ob_start(); 
// make your XML file

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

Сообщение, которое выходная буферизация мешает выводу быть отправленной, пока Вы не "сбрасываете" его. Посмотрите Документация для большего количества информации

10
ответ дан 03.08.2019, 21:30

Теги

Похожие вопросы