Tener conto di:
$xml = "l";
$xml = "vv";
echo $xml;
Questo farà eco a vv . Perché e come posso fare stringhe multilinea per cose come SimpleXML , ecc.?
concatenation
. Ecco come si chiama quando si mettono insieme le stringhe.
Tener conto di:
$xml = "l";
$xml = "vv";
echo $xml;
Questo farà eco a vv . Perché e come posso fare stringhe multilinea per cose come SimpleXML , ecc.?
concatenation
. Ecco come si chiama quando si mettono insieme le stringhe.
Risposte:
Bene,
$xml = "l
vv";
Lavori.
È inoltre possibile utilizzare quanto segue:
$xml = "l\nvv";
o
$xml = <<<XML
l
vv
XML;
È possibile concatenare le stringhe utilizzando l' .=
operatore.
$str = "Hello";
$str .= " World";
echo $str; //Will echo out "Hello World";
PHP ha stringhe Heredoc e Nowdoc, che sono il modo migliore per gestire stringhe multilinea in 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;
Un Nowdoc è come un Heredoc, ma non sostituisce le variabili.
$str = <<<'EOD'
Example of string
spanning multiple lines
using nowdoc syntax.
$var is NOT replaced in a nowdoc.
EOD;
Fai attenzione che il token finale EOD
non deve essere affatto rientrato, altrimenti PHP non lo riconoscerà. Inoltre, non è necessario utilizzare " EOD
"; può essere qualsiasi stringa tu voglia.
Non sono sicuro di come si accumuli in termini di prestazioni, ma per i luoghi in cui non importa davvero, mi piace questo formato perché posso essere sicuro che stia usando \ r \ n (CRLF) e non in qualunque formato il mio file PHP sia salvato in.
$text="line1\r\n" .
"line2\r\n" .
"line3\r\n";
Mi fa anche rientrare come voglio.
Un'altra soluzione è utilizzare il buffering dell'output , è possibile raccogliere tutto ciò che viene emesso / echo e archiviarlo in una variabile.
<?php
ob_start();
?>line1
line2
line3<?php
$xml = ob_get_clean();
Si noti che il buffering dell'output potrebbe non essere la soluzione migliore in termini di prestazioni e pulizia del codice per questo caso esatto, ma vale la pena lasciarlo qui come riferimento.
Forse prova ". =" Indead of "="?
$xml="l";
$xml.="vv";
ti darà "lvv";
$xml="l\rn";
$xml.="vv";
echo $xml;
Ma dovresti davvero guardare su http://us3.php.net/simplexml
Per mettere le stringhe "l" e "vv" su righe separate nel solo codice:
$xml = "l";
$xml .= "vv"
echo $xml;
In questo caso stai dicendo di aggiungere .=
la stringa alla fine della versione precedente di quella variabile di stringa. Ricorda che = è solo un operatore di assegnazione, quindi nel tuo codice originale stai assegnando alla variabile un nuovo valore di stringa.
Per mettere le stringhe "l" e "vv" su righe separate solo nell'eco:
$xml = "l\nvv"
echo $xml;
Non hai bisogno di più stringhe in questo caso, poiché il nuovo carattere di linea \n
si occuperà di quello per te.
Per mettere le stringhe "l" e "vv" su righe separate nel codice e durante l'eco:
$xml = "l";
$xml .= "\nvv"
echo $xml;