496 Stimmen

PHP - wie erzeugt man ein Zeilenumbruchzeichen?

In PHP versuche ich, ein Zeilenumbruchszeichen zu erzeugen:

echo $clientid;
echo ' ';
echo $lastname;
echo ' ';
echo '\r\n';

Danach öffne ich die erstellte Datei in Notepad und sie schreibt den Zeilenumbruch wörtlich:

1 Unbekannter \r\n 1 Unbekannter \r\n 1 Unbekannter \r\n

Ich habe viele Varianten des \r\n aber keine funktioniert. Warum wird der Zeilenumbruch nicht in einen Zeilenumbruch umgewandelt?

767voto

Gumbo Punkte 617646

Nur Zeichenketten in Anführungszeichen die Escape-Sequenzen zu interpretieren \r y \n als '0x0D' bzw. '0x0A', Sie wollen also:

"\r\n"

Einfache Anführungsstriche kennen dagegen nur die Escape-Sequenzen \\ y \' .

Es sei denn, Sie verketten die einfache Anführungszeichenfolge mit einem an anderer Stelle erzeugten Zeilenumbruch (z. B. mit der doppelten Anführungszeichenfolge "\r\n" oder mit chr fonction chr(0x0D).chr(0x0A) ), ist die einzige andere Möglichkeit, einen Zeilenumbruch innerhalb einer einzelnen in Anführungszeichen gesetzten Zeichenkette vorzunehmen, die buchstäbliche Eingabe mit Ihrem Editor:

$s = 'some text before the line break
some text after';

Prüfen Sie die Einstellungen Ihres Editors für den Zeilenumbruch, wenn Sie eine bestimmte Zeichenfolge benötigen ( \r\n zum Beispiel).

298voto

nnevala Punkte 5389

Verwenden Sie die vordefinierten PHP_EOL konstant:

echo $clientid, ' ', $lastname, PHP_EOL;

Der Wert der Konstante wird entsprechend den Zeilenenden des Betriebssystems, auf dem PHP ausgeführt wird, gesetzt. Unter Linux wird sie "\n" unter Windows wird es sein "\r\n" .

120voto

davea0511 Punkte 1300

Der Browser wird Zeilenumbrüche nicht in zwei Zeilen zerlegen, da ein Zeilenumbruch in HTML nichts bedeutet. Deshalb muss man, wenn man eine neue Zeile in HTML braucht, einen Tag hinzufügen, <br> ist die einfachste Variante:

echo [output text]."<br>\n";

Dadurch wird der HTML-Zeilenumbruch ausgegeben.

Beachten Sie, dass es eine gute Idee ist, trotzdem eine neue Zeile hinzuzufügen, damit Sie lesbaren HTML-Code haben, wenn Sie den Seitenquelltext überprüfen.

58voto

Salvi Pascual Punkte 1645

Verwenden Sie die Konstante PHP_EOL, um unabhängig von der Plattform das richtige Zeichen zu erhalten.

http://us3.php.net/manual/en/reserved.constants.php

Ein einfaches Anwendungsbeispiel:

<?php
$data = 'First line' . PHP_EOL .
        'Second line' . PHP_EOL .
        'Third line';

file_put_contents("filename.txt", $data);
?>

26voto

Kevin S. Miller Punkte 843

Zeichenketten zwischen doppelten Anführungszeichen "" interpolieren, d.h. sie konvertieren escapte Zeichen in druckbare Zeichen.

Zeichenketten zwischen einfachen Anführungszeichen '' sind buchstabengetreu, d. h. sie werden genau so behandelt, wie die Zeichen eingegeben werden.

Sie können beides auf derselben Leitung haben:

echo '$clientid $lastname ' . "\r\n";
echo "$clientid $lastname \r\n";

Ausgänge:

$clientid $lastname
1 John Doe

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X