Marc M.: \n sowie \r\n funktionieren nicht

<?php

echo "Hallo\r\n";
 echo "World";

?><br><br><?

echo "Hallo\n";
 echo "World";

?><br><br><?

echo "Hallo";?><br><?
 echo "World";

?>

kommt folgendes raus :

Hallo World

Hallo World

Hallo
World

wieso funktioniert weder \n noch \r\n ??

  1. Hi,

    wieso funktioniert weder \n noch \r\n ??

    es funktioniert doch perfekt. Im HTML-Kontext werden diese Whitespaces korrekt zu einem Leerzeichen zusammengefasst, ganz so, wie es in HTML definiert wurde.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  2. Es soll aber doch ein Zeilenumbruch dabei rauskommen.

    Bei

    echo "Hallo\n";
    echo "World";

    sollte

    Hallo
    World

    und nicht

    Hallo World

    rauskommen.

    1. Hallo Marc!

      Hallo
      World

      Wie sieht es im (generierten) Quelltext aus?

      Viele Grüße aus Frankfurt/Main,
      Patrick

      --

      _ - jenseits vom delirium - _
      [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
      Nichts ist unmöglich? Doch!
      Heute schon gegökt?
      1. Quelltext :

        <?php
         echo "Hallo\r\n";
         echo " World";
        ?><br><br><?
         echo "Hallo\n";
         echo " World";
        ?><br><br><?
         echo "Hallo";?><br><?
         echo "World";
        ?>

        Ausgabe:

        Hallo World

        Hallo World

        Hallo
        World

        1. Mahlzeit,

          Ausgabe:

          Ganz sicher nicht. Lies Dir Patricks Frage nochmal durch.

          MfG,
          EKKi

          --
          sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
          1. Danke

            manchmal sitzt man doch auf dem Schlauch :-(

            Marc M.

        2. Hallo Marc!

          Quelltext :

          <?php
          echo "Hallo\r\n";
          echo " World";
          ?><br><br><?
          echo "Hallo\n";
          echo " World";
          ?><br><br><?
          echo "Hallo";?><br><?
          echo "World";
          ?>

          Das ist nicht Dein Quelltext, das ist Dein PHP-Code.

          Ruf die Seite im Browser auf, und klick auf »Quelltext Anzeigen« (oder ähnlich). DAS ist dann der Quelltext. Und da steht sicher:

          Hallo
          World

          Cheatah und noscript haben Dir schon gesagt, warum.

          Viele Grüße aus Frankfurt/Main,
          Patrick

          --

          _ - jenseits vom delirium - _
          [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
          Nichts ist unmöglich? Doch!
          Heute schon gegökt?
        3. Relevant für die Ausgabe ist, was am Browser ankommt. PHP kommt dort aber nicht an! Also schau bitte in die Quelltextansicht deines Browsers, der PHP-Script-Quelltext ist hier irrelevant.

    2. Es soll aber doch ein Zeilenumbruch dabei rauskommen.

      Bei

      echo "Hallo\n";
      echo "World";

      ...

      Zeilenumbrüche im HTML-Quelltext werden nun mal aber als Leerzeichen interpretiert, egal ob du die von Hand einfügst oder per PHP reinschreiben lässt. Wenn du im HTML einen Umbruch möchtest nimm <br>.

  3. Hello,

    wenn Du möchstest, das Vorvormatierter Text auch als solcher angezeigt wird, dann musst Du dem Browser das auch sagen. Es gibt dafür das <pre>-Element.

    http://de.selfhtml.org/html/text/praeformatiert.htm

    Ein harzliches Glückauf

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. @@Tom:

      wenn Du möchstest, das Vorvormatierter Text auch als solcher angezeigt wird, dann musst Du dem Browser das auch sagen. Es gibt dafür das <pre>-Element.

      Was physische Auszeichnung ist, keine strukturelle, und deshalb nicht state of the art.

      Es gibt die CSS-Eigenschaft 'white-space'.

      Und es gibt das 'br'-Element. (Ebenfalls nach seiner Bedeutung in der Darstellung benannt, ebensoso wie 'hr'; beide erfüllen aber die Funktion einens Separators.)

      Live long and prosper,
      Gunnar

      --
      Flughafen in Tempelhof
      findet jeder Hempel doof.
      1. Hi,

        wenn Du möchstest, das Vorvormatierter Text auch als solcher angezeigt wird, dann musst Du dem Browser das auch sagen. Es gibt dafür das <pre>-Element.

        Was physische Auszeichnung ist, keine strukturelle, und deshalb nicht state of the art.

        Es gibt die CSS-Eigenschaft 'white-space'.

        Und wie viel von der *gewuenschten* Struktur, mit der ich diese Art von Inhalt womoeglich explizit darstellen lassen moechte, bleibt ohne CSS uebrig?

        Haettest du stattdessen auf HTML-Elemente für logische Auszeichnung im Text, also bspw. code, verwiesen - das haett'sch hier fuer sinnvoller erachtet.

        MfG ChrisB

        --
        "The Internet: Technological marvel of marvels - but if you don't know *what* you're lookin' for on the Internet, it is nothing but a time-sucking vortex from hell."