tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
7
ZUGRIFFE
1048
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Hektik
    Hektik Hektik ist offline Mitglied Brokat
    Registriert seit
    May 2004
    Ort
    Kleve (NRW)
    Beiträge
    300
    Hallo!

    Ich habe gelernt, dass ich bei der php-Programmierung per \n\r auf meinem Windows-Webserver einen Umbruch im generierten HTML-Code erzeugen kann.

    Ich habe mir weiterhin angewöhnt, den Inhalt von echo in ' einzufassen, statt in ", damit ich nicht jedes " per Backslash escapen muss.

    Beispiel:

    PHP-Code:
    echo '<div style="margin:5px" class="grau">';
    echo 
    'Beispiel';
    echo 
    '</div>'
    Wenn ich jetzt aber am Zeilenende eben jenen Code-Zeilenumruch hinzufüge:

    PHP-Code:
    echo '<div style="margin:5px" class="grau">\n\r';
    echo 
    'Beispiel\n\r';
    echo 
    '</div>\n\r'
    so wird dieser mir auch im anschließenden HTML-Code angezeigt:

    HTML-Code:
    <div style="margin:5px" class="grau">\n\rBeispiel\n\r</div>\n\r
    und von den Zeilenumbrüchen fehlt jede Spur.

    Meine Frage: Warum ist das so?
     

  2. #2
    Avatar von dwex
    dwex dwex ist offline Mitglied Platin
    Registriert seit
    Apr 2005
    Ort
    Landshut (Niederbayern)
    Beiträge
    695
    Hallo,

    du hast dir in deinem Post ja eigentlich die Antwort schon selbst gegeben.

    Ich habe mir weiterhin angewöhnt, den Inhalt von echo in ' einzufassen, statt in ", damit ich nicht jedes " per Backslash escapen muss.
    Genau aus diesem Grunde werden die Zeilenumbrüche nicht generiert - da der "Code" welcher sich zwischen den ' ' befindet nicht geparts wird.

    Um dir das vielleicht noch ein bischen zu verdeutlichen:
    PHP-Code:
    <?php

    $foo 
    "test";

    echo 
    $foo// Ausgabe: test
    echo "$foo"// Ausgabe: test
    echo '$foo'// Ausgabe:

    // selbiges gilt für das

    echo "da kommt ein Zeilenumbruch\nDas ist die zweite Zeile";

    //ergibt (gilt aber nur für die Ausgabe des Quelltextes:
    //da kommt eine Zeilenumbruch
    //Das ist die zweite Zeile

    echo 'da kommt ein Zeilenumbruch\nDas ist die zweite Zeile';

    //ergibt: da kommt ein Zeilenumbruch\nDas ist die zweite Zeile

    ?>
    Geändert von dwex (19.03.06 um 23:11 Uhr)
     
    Ich würde mich über die Bewertung meiner Beiträge mit Kurzkommentar sehr freuen!

    Die "dumme Frage" ist gewöhnlich das erste Anzeichen einer völlig neuen Entwicklung!
    -------------------
    Es ist immer Zeit etwas zu verändern ....
    .... das alles so bleibt wie es ist!

    -------------------
    Homepage Landshut
    -------------------
    /voodoo.css
    #meinFeind {position: absolute; bottom: -6ft;}

  3. #3
    Avatar von Hektik
    Hektik Hektik ist offline Mitglied Brokat
    Registriert seit
    May 2004
    Ort
    Kleve (NRW)
    Beiträge
    300
    Verbesserungsvorschlag?

    Außer jetzt: "schreib alles wieder in > " <"
     

  4. #4
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Es gibt mehrere Möglichkeiten Zeilenumbruchzeichen auszugeben, etwa mithilfe der chr()-Funktion (chr(0x0D).chr(0x0A)), durch Wechsel der Zeichendeklarationszeichen ('foo'."\r\n".'bar'), mithilfe einer Konstante (define('CRLF', "\r\n") … 'foo'.CRLF.'bar'), mithilfe einer eigengen Funktion, etc. Es gibt wirklich fast unzählige Möglichkeiten.
     
    Markus Wulftange

  5. #5
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Ich kennzeichne Strings in der Regel auch mit ' anstelle von ", wenn ich aber mal einen Zeilenumbruch oder aehnliches ausgeben will arbeite ich mit ". Zum Teil nutze ich auch beides.
    Mal ein paar kurze Beispiele:
    Code php:
    1
    2
    3
    
    echo 'Nur Text';
    echo "Nur Text mit Zeilenumbruch\n";
    echo 'Etwas Text und eine '.$variable." mit Zeilenumbruch\n";
    Du kannst es natuerlich so
    Code php:
    1
    
    echo 'Zeile 1.'."\n".'Zeile 2.'."\n";
    machen, jedoch find ich das dann doch etwas uebertrieben.
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  6. #6
    Admi Admi ist offline Mitglied Brokat
    Registriert seit
    Jan 2005
    Beiträge
    330
    Mal so nebenbei: Kann man das auch mit einfachem HTML im PHP-Block realisieren?

    Bsp.:

    PHP-Code:
    <?php
    //Nicht zum Nachsprechen geeignet :D
    echo "Brautkleid bleibt Brautkleid und<br />Blaukraut bleibt Blaukraut!";
    ?>
     

  7. #7
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Ein <br>-Tag ist ja kein richtiger Zeilenumbruch.
    Von PHP wird dadurch immer noch alles in eine Zeile geschrieben, nur die Darstellung im Browser selbst hat einen Zeilenumbruch. Aber wenn Du Dir den Quellcode ansiehst ist dort keiner, nur das <br>. Mit \n bekommst Du einen richtigen Zeilenumbruch, den siehst Du dann im Quelltext, aber nicht in der Browser-Ansicht, denn Umbrueche haben ja in HTML keinen Effekt.
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  8. #8
    Admi Admi ist offline Mitglied Brokat
    Registriert seit
    Jan 2005
    Beiträge
    330
    ok, thx. Werd mir wohl doch nochmal die Grundlagen anschauen müssen
     

Ähnliche Themen

  1. Hervorhebung mit <em> oder <strong> funktioniert nicht?
    Von Steve2010 im Forum HTML & XHTML
    Antworten: 6
    Letzter Beitrag: 02.09.10, 21:36
  2. Antworten: 1
    Letzter Beitrag: 14.04.10, 14:56
  3. SUM() funktioniert nicht.. oder doch Denkfehler?
    Von Immi im Forum Relationale Datenbanksysteme
    Antworten: 4
    Letzter Beitrag: 11.02.08, 13:39
  4. for oder foreach funktioniert nicht =(
    Von -Ener- im Forum PHP
    Antworten: 5
    Letzter Beitrag: 20.09.07, 20:51
  5. echo oder include funktioniert nicht
    Von greek im Forum PHP
    Antworten: 6
    Letzter Beitrag: 13.12.03, 14:27