PHP macht \n (Zeilenumbruch) nicht?

5 Antworten

Warum das alles gleich ausgeben?

Macht die Sache nur langsam - zudem sollte nach Möglich das Mischen von php und HTML vermieden werden.

Dann gleich in ein Array schreiben und das dann per implode() ausgeben.

Weiterer Vorteil ist dass das Array beliebig weiter verwendet werden kann (z.B. in einer Vorlage).

Beispiel (sofort ausgeben):

echo implode( '<br>', $meinArray );

Oder für spätere Ausgabe in Vorlage:

$data = implode( '<br>', $meinArray );

Soll das Ergebnis von einem Webserver an einen Browser ausgeliefert werden?

Falls ja, dann verwende <br/> anstelle von \n.

Oder besser noch: Pack die Ausgabe in eine Tabelle.

Woher ich das weiß:eigene Erfahrung

MSHDYT 
Beitragsersteller
 24.12.2018, 00:32

Wie geht das mit der Tabelle?

0
Isendrak  24.12.2018, 00:34
@MSHDYT

Z.B. so:

echo "<table>";
echo "<tr>Nummer</td><td>Name</td><td>Eintragsdatum</td><td>Geburtstagsdatum</td></tr>";
if($res->num_rows > 0) {
    while($i = $res->fetch_assoc()) {
        echo ("<tr><td>".$i["id"]."</td><td>".$i["name"]."</td><td>".$i["datum"]."</td><td>".$i["gebdatum"]."</td></tr>");
    }
}
echo "<table>";

Evtl. noch n bissl CSS dabei, damits hübsch ausschaut. ^^

1
MSHDYT 
Beitragsersteller
 24.12.2018, 00:43
@MSHDYT

Hab's schon, vielen Dank!

0
Isendrak  24.12.2018, 01:08
@MSHDYT

War das Problem, dass ich ein <td> vergessen hab? ^^;;;

0

Zeilenumbrüche in HTML werden via

<br>

statt \r\n gemacht :)


Isendrak  24.12.2018, 01:07

Was war noch gleich der Unterschied zwischen <br> und <br/>? Ich meine mich zu erinnern, dass eines von beiden irgendwas mit XHTML zu tun hat...

1
RakonDark  24.12.2018, 01:11
@Isendrak

ist einfach die standard darstellung für TAGS die kein Schließenden TAG haben und ja bei XHTML ist das Gesetz :) Bei einem Browser ist das aber unwichtig. Bei anderen Programmen die deine Seite verarbeiten sollen wäre es aber wichtig.

2
regex9  24.12.2018, 01:49
@Isendrak

Genau, für XHTML müsste der Tag sich selbst schließen.

1
Kieselsaeure  24.12.2018, 03:24
@regex9

Oh okay, dann fährt man also sicher wenn man überall ein / vor das > setzt was keinen schliessenden tag hat (br, input usw.)? Wie sieht es z.B. bei hr aus? Auch mit einem slash beenden?

0
regex9  24.12.2018, 04:50
@Kieselsaeure

So lange das Dokument mit dem Mimetype text/html ausgeliefert wird und den Doctype für HTML5 gesetzt hat, ist der Slash für alle empty elements optional. Man könnte an dieser Stelle höchstens anführen, dass es mit Slash lesbarer / stringenter ist (alle anderen Tags werden ja auch geschlossen), wobei das bei weiterer Überlegung auch ein Streitpunkt sein kann (immerhin müssen ja auch keine Kindelemente gruppiert werden). Ein weiterer Punkt für den Slash könnte gewollte Flexibilität sein, das Dokument auch variabel irgendwo als XHTML ausliefern zu können. Dann müssten aber auch alle anderen Tags und Attribute XML-konform umgesetzt werden.

Noch als Randbemerkung: Das Leerzeichen vor dem Slash, wie man es oft sieht:

<br />

ist laut XML 1.0 Spezifikation (3.1, [44]) optional.

2

Du hast es falsch in klammern gesetzt.

    

echo("Das ist ein Zeilenumbruch: \n");


RakonDark  24.12.2018, 17:15

er hat es richtig gesetzt . nur ist er wahrscheinlich nciht auf der kommandozeile oder in einem <textarea>

0