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 EOD
tidak 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 \n
akan 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