while ループで生成された XML などの複雑な PHP 出力を扱う場合、多くの場合、その出力をキャプチャすることが望ましいです。変数に含めることで、繰り返し処理を回避し、効率を向上させます。 PHP では、ob_start() 関数と ob_get_clean() 関数を利用してこれを実現できます。その方法を示しましょう:
例:
次のコードを考えてみましょう:
<code class="php">ob_start(); // Start buffering output ?> <xml> <morexml> <?php while ($condition) { ?> <somegeneratedxml> <?php } // End while loop ?> <lastofthexml> <?php ob_get_clean(); // End buffering and store output in $xml
ob_start() 関数は出力バッファリングを初期化し、すべてのバッファリングが確実に行われるようにします。後続の PHP 出力はバッファーにキャプチャされます。次に、コードは while ループやその他の PHP ロジックを使用して XML を生成します。
ob_start() ブロックと ob_get_clean() ブロック内で、$xml 変数は生成された XML 全体をキャプチャします。その後、スクリプト内の任意の場所で変数を利用して、XML が 1 回だけ生成されるようにすることができます。
実際の応用例:
シナリオでは、次のように表示します。 XML をプレビューでユーザーに送信し、それをフォーム値として渡します。 ob_start() および ob_get_clean() 手法を使用すると、XML を 1 回生成して $xml 変数に保存できます。次に、次のスニペットに示すように、プレビューとフォーム値の両方で単純に出力できます。
<code class="php">echo "<pre class="brush:php;toolbar:false">$xml"; // Display XML in preview
<code class="php"><input value="<?php echo $xml; ?>" /> // Set form value to XML</code>
このアプローチに従うことで、PHP のパフォーマンスとモジュール性が向上します。生成された出力を効率的にキャプチャして再利用することでコードを生成します。
以上がXML 処理のために PHP 出力を変数に取り込む方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。