Mempertimbangkan:
$xml = "l";
$xml = "vv";
echo $xml;
Ini akan menggemakan vv . Mengapa dan bagaimana saya dapat membuat string multi-baris untuk hal-hal seperti SimpleXML , dll.?
Mempertimbangkan:
$xml = "l";
$xml = "vv";
echo $xml;
Ini akan menggemakan vv . Mengapa dan bagaimana saya dapat membuat string multi-baris untuk hal-hal seperti SimpleXML , dll.?
concatenation. Itulah sebutannya saat Anda mengumpulkan string.
Jawaban:
Baik,
$xml = "l
vv";
Bekerja.
Anda juga dapat menggunakan yang berikut ini:
$xml = "l\nvv";
atau
$xml = <<<XML
l
vv
XML;
Anda dapat menggabungkan string menggunakan .=operator.
$str = "Hello";
$str .= " World";
echo $str; //Will echo out "Hello World";
PHP memiliki string Heredoc dan Nowdoc, yang merupakan cara terbaik untuk menangani string multiline di 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 seperti Heredoc, tetapi tidak menggantikan variabel.
$str = <<<'EOD'
Example of string
spanning multiple lines
using nowdoc syntax.
$var is NOT replaced in a nowdoc.
EOD;
Berhati-hatilah bahwa token akhir EODtidak boleh diindentasi sama sekali, atau PHP tidak akan mengakuinya. Selain itu, Anda tidak harus menggunakan " EOD"; itu bisa berupa string apa pun yang Anda inginkan.
Tidak yakin bagaimana cara menumpuk dari segi kinerja, tetapi untuk tempat-tempat yang tidak terlalu penting, saya suka format ini karena saya yakin itu menggunakan \ r \ n (CRLF) dan bukan format apa pun yang kebetulan file PHP saya disimpan dalam.
$text="line1\r\n" .
"line2\r\n" .
"line3\r\n";
Ini juga memungkinkan saya membuat indentasi sesuka saya.
Solusi lain adalah dengan menggunakan buffering keluaran , Anda dapat mengumpulkan semua yang dikeluarkan / di-echo dan menyimpannya dalam sebuah variabel.
<?php
ob_start();
?>line1
line2
line3<?php
$xml = ob_get_clean();
Harap dicatat bahwa buffering keluaran mungkin bukan solusi terbaik dalam hal kinerja dan kebersihan kode untuk kasus yang tepat ini tetapi sebaiknya tinggalkan di sini untuk referensi.
Mungkin mencoba ". =" Indead of "="?
$xml="l";
$xml.="vv";
akan memberi Anda "lvv";
Untuk meletakkan string "l" dan "vv" pada baris terpisah dalam kode saja:
$xml = "l";
$xml .= "vv"
echo $xml;
Dalam contoh ini Anda mengatakan untuk menambahkan .=string ke akhir versi sebelumnya dari variabel string itu. Ingatlah bahwa = hanyalah operator penugasan, jadi dalam kode asli Anda, Anda menetapkan nilai string baru untuk variabel.
Untuk meletakkan string "l" dan "vv" pada baris terpisah di echo saja:
$xml = "l\nvv"
echo $xml;
Anda tidak memerlukan banyak string dalam hal ini, karena karakter baris baru \nakan mengurusnya untuk Anda.
Untuk meletakkan string "l" dan "vv" pada baris terpisah dalam kode dan saat menggema:
$xml = "l";
$xml .= "\nvv"
echo $xml;
$xml="l\rn";
$xml.="vv";
echo $xml;
Tetapi Anda harus benar-benar melihat http://us3.php.net/simplexml