Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 20 von 24

Thema: [PHP] Zeilenumbruch!

  1. #1

    [PHP] Zeilenumbruch!

    Banale Frage, nach der sich aber leider nicht erfolgreich suchen lässt:

    Bei doppelten Anführungszeichen wird ein Zeilenumbruch mit einem \n kodiert:
    PHP-Code:
    echo "Zeile vor dem Umbruch \n Zeile nach dem Umbruch"
    Aber wie geht das bei einfachen Anführungszeichen, die ich jetzt der Performance-wegen benutzen will:
    PHP-Code:
    echo 'Zeile vor dem Umbruch ¿Zeichen? Zeile nach dem Umbruch'
    Ich bin sicher es gibt auch eine banale Antwort^^
    Dankö!

  2. #2
    Gibt es nicht, es geht nur so:
    PHP-Code:
    echo 'Hallo' "\n" 'Welt'
    Das ist schließlich der Grund, wieso ' performanter ist, wobei mir selbst durchgeführte Benchmarks dies leider nicht bestätigen konnten .
    Ich bleibe persönlich trotzdem bei ', schon allein aus optischen Gründen .

  3. #3

    Dankö!

    Zitat Zitat von Xardas der Dunkle Beitrag anzeigen
    Das ist schließlich der Grund, wieso ' performanter ist, wobei mir selbst durchgeführte Benchmarks dies leider nicht bestätigen konnten .
    Ich bleibe persönlich trotzdem bei ', schon allein aus optischen Gründen .
    Okey, danke dafür.

    In meinem Ferienjob-Geschäft ist ' auch die Richtlinie, und da ich auch nie so "String mit $variable"-Zeug benutze, brauch ich die " eigentlich auch nicht, höchsten für den Umbruch.

  4. #4
    Es geht auch einfach so:
    PHP-Code:
     echo 'Zeile vor dem Umbruch
    Zeile nach dem Umbruch'


  5. #5
    Zitat Zitat von drunken monkey Beitrag anzeigen
    Es geht auch einfach so:
    PHP-Code:
     echo 'Zeile vor dem Umbruch
    Zeile nach dem Umbruch'

    Ist aber im Code nicht so - ästhetisch.^^
    Mag ich nicht so.

  6. #6
    Mal eine Frage, wenn's hier eh grad um Zeilenumbrüche geht.
    Bei mir wird kein Zeilenumbruch erzeugt, wenn ich einen String, der "\n", enthält, per echo ausgebe-, dafür musste ich seit jeher mit <br /> arbeiten. Das hat ja auch soweit seine Richtigkeit, oder nicht? Insofern ist es doch ein wenig sinnfrei, ein "\n" per echo auszugeben? Korrigiert mich bitte, wenn ich da falsch liege. =0

    Und ich persönlich finde Strings in "Gänsefüßchen" hübscher als in 'Anführungszeichen'. ^^

  7. #7
    Das <br /> erzeugt, den Umbruch in der HTML-Ausgabe. Das \n den im Quelltext und auch ein Quelltext sollte schön aussehen .

    Zitat Zitat
    Und ich persönlich finde Strings in "Gänsefüßchen" hübscher als in 'Anführungszeichen'. ^^
    Aber: $array["Bla"] sieht auf jeden Fall einfach nur zum kotzen aus^^.

  8. #8
    Zitat Zitat von The Best Isaac Beitrag anzeigen
    Mal eine Frage, wenn's hier eh grad um Zeilenumbrüche geht.
    Bei mir wird kein Zeilenumbruch erzeugt, wenn ich einen String, der "\n", enthält, per echo ausgebe-, dafür musste ich seit jeher mit <br /> arbeiten. Das hat ja auch soweit seine Richtigkeit, oder nicht? Insofern ist es doch ein wenig sinnfrei, ein "\n" per echo auszugeben? Korrigiert mich bitte, wenn ich da falsch liege. =0
    Es macht den HTML Code übersichtlich.
    Wenn man in demselben nachschaun und zb. Stil ändern will, ist das sinnvoll/nötig.
    Die Broswerausgabe beeinflusst das nicht.
    Sinnvoll auch beim Debugging in kompination mit einem <pre>.

    Zitat Zitat
    Und ich persönlich finde Strings in "Gänsefüßchen" hübscher als in 'Anführungszeichen'. ^^
    In erster Linie subjektives empfinden.
    Allerdings werden die einfachen Anführungszeichen vor der Ausgabe nicht nach zu interpretierenden Zeichencodes oder aufzulösenden Variablen durchsucht.
    Theoretisch ein performance Gewinn, bei nicht normalen Anwendungen aber nicht spürbar.
    Da ich aber sowieso Variablen nie direkt in die Strings schreibe, der Übersicht und Korrektheit wegen, empfehlen für mich sowieso die einfachen.
    Und ich würde ganz gerne die Anführungszeichen im HTML Code einheitlich doppelt machen, und natürlich nicht escapen.
    Edit: Irgendjemand hatte noch einen Benchmark Post geschrieben und zurückgezogen:
    PHP Benchmarks gibt's auf The PHP Benchmark. Ein "-String mit war im Vergleich mit einem '-String 689 % langsamer!

    Edit 2: Ich postes mal unten...

    Geändert von Bluescreen (26.08.2008 um 21:01 Uhr) Grund: Benchmark Link added.

  9. #9
    Zitat Zitat von Xardas der Dunkle
    Das <br /> erzeugt, den Umbruch in der HTML-Ausgabe. Das \n den im Quelltext und auch ein Quelltext sollte schön aussehen .
    Hm, stimmt auch wieder. Aber mir ist nur wichtig, wie der Code in meinem PHP-Skript aussieht, und da würden mich die Zeilenumbruch-Codes nur stören. xD

    Dass das mit " und ' subjektiv ist, was man schöner findet, ist klar. Ich bin's halt aus anderen Programmiersprachen eher gewöhnt, Strings in Gänsefüßchen zu packen. ^^

    Zitat Zitat von Xardas der Dunkle
    Aber: $array["Bla"] sieht auf jeden Fall einfach nur zum kotzen aus^^.
    Wirklich schön ist das nicht, da hast du recht. Aber assoziative Arrays hab ich bisher erst einmal verwendet (was aber daran liegen kann, dass ich generell nicht viel mit PHP mach).

    Dass ' performancesparender sind als " wusste ich aber bis jetzt noch gar nicht. Man lernt halt nie aus. =)

  10. #10
    Zu der Performance poste ich nochmal meinen Test, ausgeführt unter Windoof XP (vllt habt ihr ja bessere Ergebnisse [und stört euch net an dem Code xD]):
    PHP-Code:
    Einfache Anführungszeichen: 0.06699562 ms
    Doppelte Anführungszeichen: 0.05292892 ms
    Doppelte Anführungszeichen, parsed: 0.06604195 ms
    HEREDOC: 0.07605553 ms
    HEREDOC parsed: 0.11992455 ms
    sprintf: 0.11992455 ms

    <?php
    header
    ('Content-Type: text/html; charset=utf-8');

    $time microtime(true);
    for(
    $i=0$i<100$i++) {
        
    $b 'Welt';
        
    $a 'Hallo ' $b;
    }
    $t = (microtime(true) - $time);
    echo 
    'Einfache Anführungszeichen: ' sprintf('%0.8f ms'$t 1000) . "<br />\n";

    $time microtime(true);
    for(
    $i=0$i<100$i++) {
        
    $b "Welt";
        
    $a "Hallo " $b;
    }
    $t = (microtime(true) - $time);
    echo 
    'Doppelte Anführungszeichen: ' sprintf('%0.8f ms'$t 1000) . "<br />\n";

    $time microtime(true);
    for(
    $i=0$i<100$i++) {
        
    $b "Welt";
        
    $a "Hallo $b";
    }
    $t = (microtime(true) - $time);
    echo 
    'Doppelte Anführungszeichen, parsed: ' sprintf('%0.8f ms'$t 1000) . "<br />\n";

    $time microtime(true);
    for(
    $i=0$i<100$i++) {
        
    $b =<<<HEREDOC
    Welt
    HEREDOC;
        
    $a = <<<HEREDOC
    Hallo
    HEREDOC
    $b;
    }
    $t = (microtime(true) - $time);
    echo 
    'HEREDOC: ' sprintf('%0.8f ms'$t 1000) . "<br />\n";

    $time microtime(true);
    for(
    $i=0$i<100$i++) {
        
    $b =<<<HEREDOC
    Welt
    HEREDOC;
        
    $a = <<<HEREDOC
    Hallo $b
    HEREDOC
    $b;
    }
    $t = (microtime(true) - $time);
    echo 
    'HEREDOC parsed: ' sprintf('%0.8f ms'$t 1000) . "<br />\n";

    $time microtime(true);
    for(
    $i=0$i<100$i++) {
        
    $a sprintf('Hallo %s''Welt');
    }
    $t = (microtime(true) - $time);
    echo 
    'sprintf: ' sprintf('%0.8f ms'$t 1000) . "<br />\n";

    echo 
    "<br />\n";
    highlight_file(__FILE__);
    /Edit: Ändert man die Durchläufe von 100 auf 8000 wird der unterschied langsam Spürbar!

    Geändert von Xardas der Dunkle (26.08.2008 um 21:02 Uhr)

  11. #11

    PHP Benchmarks

    Zitat Zitat von Xardas der Dunkle Beitrag anzeigen
    Zu der Performance poste ich nochmal meinen Test, ausgeführt unter Windoof XP (vllt habt ihr ja bessere Ergebnisse [und stört euch net an dem Code xD]):
    PHP Benchmarks gibt's auch auf The PHP Benchmark. Ein "-String mit war dort im Vergleich mit einem '-String 689% langsamer!

  12. #12
    o_Ô Wo da?^^
    Also den ich gefunden habe ganz unten auf der Seite, sagt für beides 102-110% also im gründen Bereich.

    /Edit: Meinst du vllt, print vs. echo?^^

    Geändert von Xardas der Dunkle (26.08.2008 um 21:31 Uhr)

  13. #13
    Zitat Zitat von Bluescreen Beitrag anzeigen
    PHP Benchmarks gibt's auch auf The PHP Benchmark. Ein "-String mit war dort im Vergleich mit einem '-String 689% langsamer!
    Entweder hast du dich verlesen oder deine 689% waren von einem älteren Test. Auf der verlinkten Seite finde ich auch nur die Werte, die Xardas genannt hat.

  14. #14
    Zitat Zitat von The Best Isaac Beitrag anzeigen
    Entweder hast du dich verlesen oder deine 689% waren von einem älteren Test. Auf der verlinkten Seite finde ich auch nur die Werte, die Xardas genannt hat.
    *lol*, ihr habt natürlich irgemdwie Recht...^^

  15. #15
    Zitat Zitat von Xardas der Dunkle Beitrag anzeigen
    /Edit: Ändert man die Durchläufe von 100 auf 8000 wird der unterschied langsam Spürbar!
    Da muss man auch bedenken, dass PHP die jeweiligen Aktionen auch entsprechend oft durchführt bei einem entsprechend ausgelasteten Server.

  16. #16
    Zitat Zitat von The Best Isaac Beitrag anzeigen
    Hm, stimmt auch wieder. Aber mir ist nur wichtig, wie der Code in meinem PHP-Skript aussieht, und da würden mich die Zeilenumbruch-Codes nur stören. xD
    Kein guter Ansatz. Wenn du Schwierigkeiten kriegst, weil dein PHP-Skript an irgendeiner Stelle nicht wohlgeformten Output erzeugt oder weil einfach ein Styesheet nicht das tut, was es tun sollte, dann wirst du dir ordentliche Zeilenumbrüche und Einrückung wünschen.


    Zum Thema "<br>"* vs. "\n": "<br>" verwendest du nur, wenn du HTML ausgibst. PHP muß aber nicht unbedingt HTML ausgeben. Ich habe Shellskripte in PHP geschrieben und verwende in einer Webanwendung ein PHP-Backend, um JSON-Strings zu erzeugen. Luki verwendet PHP als Präprozessor für das Datenformat einer Chemiesoftware (oder hat das mal getan). Da braucht man überall nur "\n".

    Es kommt also immer darauf an, was man erzeugt - und das ist nicht immer HTML.


    * "<br />" ignoriere ich mal, weil XHTML effektiv tot ist.

  17. #17
    Zitat Zitat von Jesus_666 Beitrag anzeigen
    Kein guter Ansatz. Wenn du Schwierigkeiten kriegst, weil dein PHP-Skript an irgendeiner Stelle nicht wohlgeformten Output erzeugt oder weil einfach ein Styesheet nicht das tut, was es tun sollte, dann wirst du dir ordentliche Zeilenumbrüche und Einrückung wünschen.
    Ganz meine Meinung. Und die (Probleme) wird man schon bekommen, wenn man groößere Projekte mal editieren muss!


    Zitat Zitat
    Zum Thema "<br>"* vs. "\n": "<br>" verwendest du nur, wenn du HTML ausgibst. PHP muß aber nicht unbedingt HTML ausgeben. Ich habe Shellskripte in PHP geschrieben und verwende in einer Webanwendung ein PHP-Backend, um JSON-Strings zu erzeugen. Luki verwendet PHP als Präprozessor für das Datenformat einer Chemiesoftware (oder hat das mal getan). Da braucht man überall nur "\n".

    Es kommt also immer darauf an, was man erzeugt - und das ist nicht immer HTML.

    * "<br />" ignoriere ich mal, weil XHTML effektiv tot ist.
    Schon, ich hab aber auch bewusst ins Webentwicklungs-Forum gepostet.

  18. #18
    Zitat Zitat
    * "<br />" ignoriere ich mal, weil XHTML effektiv tot ist.
    Schwachsin! XHTML ist groß im kommen, zumal XHTML im Gegensatz zu HTML auch durch einen XML-Parser laufen kann ...
    Vorallem spuckt PHP selber XHTML aus (siehe die Funktion nl2br)!

    /EDIT: Ich weise auch mal auf den Doctype dieses Forums hin

    Geändert von Xardas der Dunkle (27.08.2008 um 15:47 Uhr)

  19. #19
    Zitat Zitat von Xardas der Dunkle Beitrag anzeigen
    Schwachsin! XHTML ist groß im kommen, zumal XHTML im Gegensatz zu HTML auch durch einen XML-Parser laufen kann ...
    Dreht man es etwas, erkennt man, dass XHTML von XML- und HTML-Parsern verarbeitet werden kann. Wobei das mit dem XML-Parser auch nicht immer stimmt.

    Zitat Zitat von Xardas der Dunkle Beitrag anzeigen
    Vorallem spuckt PHP selber XHTML aus (siehe die Funktion nl2br)!
    Aus gerade genanntem Grund.

    Zitat Zitat von Xardas der Dunkle Beitrag anzeigen
    /EDIT: Ich weise auch mal auf den Doctype dieses Forums hin
    Das ist doch der Beweis, dass dies gerade nicht der Fall ist.

    Aber da XHTML schon mal da ist wirds auch weiterentwickelt, synchron zu HTML.

  20. #20
    Das mit dem Parser war jetzt nicht unbedingt auf den Parser des Browsers bezogen. (Zudem gehe ich von validem XHTML aus, was leider kaum einer umsetzt ).

    Zitat Zitat
    Das ist doch der Beweis, dass dies gerade nicht der Fall ist.
    Habe ich gesagt das es valide ist?, Ich sagte der Doctype ist ein XHTML-Doctype!

    Zitat Zitat
    Aber da XHTML schon mal da ist wirds auch weiterentwickelt, synchron zu HTML.
    Trotzdem ist XHTML einiges sauberer als HTML. Zudem sind beide Versionen die gerade in Planung sind Mist, <h>-Tag, anstatt <h[1-6]> was zu ein scheiß.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •