Wie füge ich einen Zeilenumbruch innerhalb von Echo in PHP hinzu? [geschlossen]

92

Ich habe versucht, einen Zeilenumbruch für einen Satz hinzuzufügen, und /n im folgenden Code hinzugefügt .

echo "Thanks for your email. /n  Your orders details are below:".PHP_EOL;
echo 'Thanks for your email. /n  Your orders details are below:'.PHP_EOL;

Aus einigen Gründen habe ich als Ergebnis einen Serverfehler erhalten. Wie behebe ich das?

Jumax
quelle
4
Verwenden Sie einen Backslash. Dies ist kein ordnungsgemäß maskiertes Zeichen \n. Aber der Server - Fehler ist nicht auf diesen Versuch, Blick in Zusammenhang mit Apache - Log - und Kontroll __(arg)Doku
Marek Sebera
1
Willkommen bei Stackoverflow. Bitte befolgen Sie die Fragen, die Sie zur Bestätigung benötigen, bevor Sie eine Frage stellen. Denken Sie daran, dass nur Sie etwas wollen und sich fragen, wie es programmiert ist, nicht als Programmierfrage an sich qualifiziert ist.
hakre

Antworten:

253

\nist ein Zeilenumbruch. /nist nicht.


Verwendung von \nmit

1. Echo direkt zur Seite

Wenn Sie nun versuchen, eine Zeichenfolge auf der Seite wiederzugeben:

echo  "kings \n garden";

Ausgabe wird sein:

kings garden

Sie erhalten keine gardenneue Zeile, da PHP eine serverseitige Sprache ist und Sie die Ausgabe als HTML senden. Sie müssen Zeilenumbrüche in HTML erstellen. HTML versteht nicht \n. Sie müssen die nl2br()Funktion dafür verwenden.

Was es tut ist:

Gibt eine Zeichenfolge mit <br />oder <br>vor allen Zeilenumbrüchen (\ r \ n, \ n \ r, \ n und \ r) zurück.

echo  nl2br ("kings \n garden");

Ausgabe

kings
garden

Hinweis Stellen Sie sicher, dass Sie \nin doppelten Anführungszeichen wiedergeben / drucken . Andernfalls wird es buchstäblich als \ n gerendert. weil PHP-Interpreter String in einfachen Anführungszeichen mit Konzept von wie es ist analysieren

so "\n" not '\n'

2. In eine Textdatei schreiben

Wenn Sie nun zu einer Textdatei zurückkehren, können Sie nur verwenden \nund es wird eine neue Zeile wiedergegeben, wie z.

$myfile = fopen("test.txt", "w+")  ;

$txt = "kings \n garden";
fwrite($myfile, $txt);
fclose($myfile);
 

Ausgabe wird sein:

kings
 garden
NullPoiиteя
quelle
1
Exapnding auf dem oben genannten. Dies funktioniert - Beispiel -> Echo "<html>". "\ N"; oder Echo "Königsgarten". "\ n"; Dies fügt einen Zeilenumbruch nach der ersten Zeile hinzu. Google hat mich hierher geführt, als ich nach dem Echo Zeilenumbrüche hinzufügen wollte.
MarcoZen
18

Sie müssen br verwenden, wenn Sie echo verwenden, wie folgt:

echo "Thanks for your email" ."<br>". "Your orders details are below:"

und es wird richtig funktionieren

Maryam Homayouni
quelle
1
Das wird nicht für HTML-Dokumente
funktionieren
1
Das wird nicht funktionieren, wenn Sie sie in einer PHP / Server-seitigen
Sprachdatei wiedergeben
13

Das neue Zeilenzeichen lautet \nwie folgt :

echo __("Thanks for your email.\n<br />\n<br />Your order's details are below:", 'jigoshop');
noetix
quelle
Was ist das Präfix __(zwei Unterstriche)?
Peter Mortensen
1
@PeterMortensen Es ist eine Funktion in einigen PHP-Frameworks, um die Internationalisierung zu unterstützen. Der ursprüngliche Beitrag hat es verwendet, weshalb ich es meiner Antwort hinzugefügt habe.
Noetix
2

Möglicherweise möchten Sie \ r \ n für Wagenrücklauf / Zeilenvorschub versuchen

Jonathan
quelle
Das Problem scheint der Schrägstrich zu sein, /nvs \n.
Peter Mortensen