[php] PHP의 여러 줄 문자열

치다:

$xml = "l";
$xml = "vv";

echo $xml;

이것은 vv 를 에코 합니다. SimpleXML 등의 여러 줄 문자열을 왜 그리고 어떻게 할 수 있습니까?



답변

잘,

$xml = "l
vv";

공장.

다음을 사용할 수도 있습니다.

$xml = "l\nvv";

또는

$xml = <<<XML
l
vv
XML;

주석을 기준으로 편집 :

.=연산자를 사용하여 문자열을 연결할 수 있습니다 .

$str = "Hello";
$str .= " World";
echo $str; //Will echo out "Hello World";


답변

PHP에는 Heredoc 및 Nowdoc 문자열이 있으며, 이는 PHP에서 여러 줄 문자열을 처리하는 가장 좋은 방법입니다.

http://php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc

$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
$var is replaced automatically.
EOD;

Nowdoc은 Heredoc과 유사하지만 변수를 대체하지 않습니다.

$str = <<<'EOD'
Example of string
spanning multiple lines
using nowdoc syntax.
$var is NOT replaced in a nowdoc.
EOD;

엔드 토큰 EOD을 전혀 들여 쓰기해서는 안됩니다. 그렇지 않으면 PHP가이를 인식하지 못합니다. 또한 ” EOD” 을 사용할 필요가 없습니다 . 원하는 문자열이 될 수 있습니다.


답변

$xml="l" . PHP_EOL;
$xml.="vv";
echo $xml;

에코 :

l
vv

PHP_EOL 에 대한 문서 .


답변

성능 측면에서 어떻게 쌓이는 지 확실하지 않지만 실제로 중요하지 않은 곳에서는이 형식을 좋아합니다. \ r \ n (CRLF)을 사용하고 PHP 파일의 형식이 무엇이든 확실하지 않기 때문에이 형식을 좋아합니다. 저장되었습니다.

$text="line1\r\n" .
      "line2\r\n" .
      "line3\r\n";

또한 내가 원하는대로 들여 쓰기 할 수 있습니다.


답변

또 다른 해결책은 출력 버퍼링 을 사용 하는 것입니다. 출력 / 에코되는 모든 것을 수집하여 변수에 저장할 수 있습니다.

<?php
ob_start();

?>line1
line2
line3<?php

$xml = ob_get_clean();

출력 버퍼링은이 정확한 경우에 대한 성능 및 코드 청결성 측면에서 최상의 솔루션은 아니지만 참조를 위해 여기에 남겨 두는 것이 좋습니다.


답변

“=”= “죽지 않은”= “일까?

$xml="l";
$xml.="vv";

당신에게 “lvv”를 줄 것이다;


답변

$xml="l\rn";
$xml.="vv";

echo $xml;

그러나 실제로 http://us3.php.net/simplexml을 살펴보십시오.