반응형
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 및 개별 기능을 참조하십시오.
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("<", "<", str_replace(">", ">", $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
반응형
'bestsource' 카테고리의 다른 글
SpringBoot를 통해 SpringBoot 응용 프로그램을 디버깅하는 방법시험 (0) | 2023.07.23 |
---|---|
Oracle <> , != , ^= 연산자 (0) | 2023.07.23 |
연결 시 Java 애플리케이션이 Oracle에 대해 식별되도록 하려면 어떻게 해야 합니까? (0) | 2023.07.23 |
플라이웨이 Java 기반 마이그레이션에는 스프링 콩이 주입되지 않습니다. (0) | 2023.07.23 |
테이블에 열이 너무 많으면 성능이 저하됩니까? (0) | 2023.07.23 |