Erwägen:
$xml = "l";
$xml = "vv";
echo $xml;
Dies wird vv wiedergeben . Warum und wie kann ich mehrzeilige Zeichenfolgen für Dinge wie SimpleXML usw. erstellen ?
concatenation
. So heißt es, wenn man Strings zusammensetzt.
Erwägen:
$xml = "l";
$xml = "vv";
echo $xml;
Dies wird vv wiedergeben . Warum und wie kann ich mehrzeilige Zeichenfolgen für Dinge wie SimpleXML usw. erstellen ?
concatenation
. So heißt es, wenn man Strings zusammensetzt.
Antworten:
Gut,
$xml = "l
vv";
Funktioniert.
Sie können auch Folgendes verwenden:
$xml = "l\nvv";
oder
$xml = <<<XML
l
vv
XML;
Sie können Zeichenfolgen mit dem .=
Operator verketten .
$str = "Hello";
$str .= " World";
echo $str; //Will echo out "Hello World";
PHP verfügt über Heredoc- und Nowdoc-Zeichenfolgen, mit denen sich mehrzeilige Zeichenfolgen in PHP am besten verarbeiten lassen.
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;
Ein Nowdoc ist wie ein Heredoc, ersetzt jedoch keine Variablen.
$str = <<<'EOD'
Example of string
spanning multiple lines
using nowdoc syntax.
$var is NOT replaced in a nowdoc.
EOD;
Beachten Sie, dass das End-Token EOD
überhaupt nicht eingerückt werden darf, da PHP dies sonst nicht bestätigt. Außerdem müssen Sie nicht " EOD
" verwenden. Es kann eine beliebige Zeichenfolge sein.
Ich bin mir nicht sicher, wie es sich in Bezug auf die Leistung stapelt, aber für Orte, an denen es nicht wirklich wichtig ist, mag ich dieses Format, weil ich sicher sein kann, dass es \ r \ n (CRLF) verwendet und nicht das Format, in dem meine PHP-Datei gerade ist gespeichert in.
$text="line1\r\n" .
"line2\r\n" .
"line3\r\n";
Es lässt mich auch einrücken, wie ich will.
Eine andere Lösung ist die Verwendung der Ausgabepufferung . Sie können alles, was ausgegeben / wiedergegeben wird, sammeln und in einer Variablen speichern.
<?php
ob_start();
?>line1
line2
line3<?php
$xml = ob_get_clean();
Bitte beachten Sie, dass die Ausgabepufferung in Bezug auf Leistung und Code-Sauberkeit möglicherweise nicht die beste Lösung für diesen genauen Fall ist, es sich jedoch lohnt, sie hier als Referenz zu belassen.
Vielleicht versuchen Sie ". =" Indead von "="?
$xml="l";
$xml.="vv";
wird dir "lvv" geben;
$xml="l\rn";
$xml.="vv";
echo $xml;
Aber Sie sollten wirklich in http://us3.php.net/simplexml schauen
So setzen Sie die Zeichenfolgen "l" und "vv" allein im Code in separate Zeilen:
$xml = "l";
$xml .= "vv"
echo $xml;
In diesem Fall möchten Sie anhängen .=
die Zeichenfolge an das Ende der vorherigen Version dieser Zeichenfolgenvariablen . Denken Sie daran, dass = nur ein Zuweisungsoperator ist. In Ihrem ursprünglichen Code weisen Sie der Variablen einen neuen Zeichenfolgenwert zu.
So setzen Sie die Zeichenfolgen "l" und "vv" allein im Echo in separate Zeilen:
$xml = "l\nvv"
echo $xml;
In diesem Fall benötigen Sie nicht mehrere Zeichenfolgen als neues Zeilenzeichen \n
für Sie erledigt.
So setzen Sie die Zeichenfolgen "l" und "vv" in separate Zeilen im Code und beim Echo:
$xml = "l";
$xml .= "\nvv"
echo $xml;