bestsource

PHP 출력을 변수로 캡처하려면 어떻게 해야 합니까?

bestsource 2023. 7. 23. 14:32
반응형

PHP 출력을 변수로 캡처하려면 어떻게 해야 합니까?

저는 사용자가 양식 버튼을 클릭할 때 포스트 변수로 API에 전달될 XML을 엄청나게 생성하고 있습니다.저는 또한 사용자에게 미리 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_http;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

출력 버퍼링은 " 플러시"할 때까지 출력 전송을 중지합니다.자세한 내용은 설명서를 참조하십시오.

자주 사용할 때는 약간의 도우미가 도움이 될 수 있습니다.

class Helper
{
    /**
     * Capture output of a function with arguments and return it as a string.
     */
    public static function captureOutput(callable $callback, ...$args): string
    {
        ob_start();
        $callback(...$args);
        $output = ob_get_contents();
        ob_end_clean();
        return $output;
    }
}

사용해 볼 수 있습니다.

<?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>

언급URL : https://stackoverflow.com/questions/171318/how-do-i-capture-php-output-into-a-variable

반응형