.MB: PHP Escapen \ Steuerzeichen \ echo wie verwenden?

Hallo Community,

mir ist aufgefallen das wenn ich ein php-Script erzeuge was dann in HTML ausgeben wird, schlecht eingerückt ist. Ich muss dann wirklich mit Steuerzeichen arbeiten wie \n oder \t im echo-Bereich.

Beispiel:

echo "<html>\n\t<body>\n\t\t...\n\t<body>\n<html>"

auch ist mir nicht ganz Klar wie ich das hand haben soll mit <?php ... ?>

<html>
  <body>
    <?php ... ?>
  </body>
<body>

oder so:

echo "<html><body>$value</body></html>";

oder so:

echo '<html><body>' . $value . '</body></html>';

und eben das noch mit Steuzeichen und escapen wie echo "<a href=\"...\">...</a>"; Ich in da sehr aufgeschmissen wi ich da ran gehen soll.

Gruß MB

  1. Tach!

    mir ist aufgefallen das wenn ich ein php-Script erzeuge was dann in HTML ausgeben wird, schlecht eingerückt ist.

    Das ist nur ein Schönheitsfehler, den kaum einer bemerken wird.

    Ich muss dann wirklich mit Steuerzeichen arbeiten wie \n oder \t im echo-Bereich.

    Muss man nicht, es gibt alternative Herangehensweisen. Zum einen muss man kein echo verwenden, man kann auch PHP beenden ?> und nach dem HTML-Block wieder beginnen <?php. Für diese Vorgehensweise ist es ja schließlich erfunden worden.

    Eine weitere Methode ist die Heredoc oder die Nowdoc-Schreibweise, zu finden im PHP-Manual im Kapitel zu den Typen, und da bei Strings.

    und eben das noch mit Steuzeichen und escapen wie echo "<a href=\"...\">...</a>"; Ich in da sehr aufgeschmissen wi ich da ran gehen soll.

    Von innen nach außen, wenns denn wirklich echo sein soll. Siehe Kontextwechsel.

    dedlfix.

  2. @@.MB

    mir ist aufgefallen das wenn ich ein php-Script erzeuge was dann in HTML ausgeben wird, schlecht eingerückt ist. Ich muss dann wirklich mit Steuerzeichen arbeiten wie \n oder \t im echo-Bereich.

    Beispiel:

    echo "<html>\n\t<body>\n\t\t...\n\t<body>\n<html>"
    

    Nein, das solltest du nicht müssen. Es ist i.a.R. nicht sinnvoll, mit einem PHP-Script Markup zu erzeugen.

    auch ist mir nicht ganz Klar wie ich das hand haben soll mit <?php ... ?>

    <html>
      <body>
        <?php ... ?>
      </body>
    <body>
    

    oder so:

    echo "<html><body>$value</body></html>";
    

    oder so:

    echo '<html><body>' . $value . '</body></html>';
    

    Weder zweiteres noch letzteres. Sondern erstes:

    <html>
      <body>
        <?php echo $value; ?>
      </body>
    </html>
    

    bzw. kurz

    <html>
      <body>
        <?= $value ?>
      </body>
    </html>
    

    PHP in HTML schachteln, nicht andersrum.

    LLAP 🖖

    PS: Ärgerlich, dass die Formatierung im Archiv kaputt ist.

    PPS: Ich hab das Beispielmarkup mal so gelassen – in dem Bewusstsein, dass das ohne head/title kein gültiges HTML ist.

    --
    „Wir haben deinen numidischen Schreiber aufgegriffen, o Syndicus.“
    „Hat auf dem Forum herumgelungert …“
    (Wachen in Asterix 36: Der Papyrus des Cäsar)
    1. Hallo Gunnar,

      ok danke dir

      Herzlichste Grüße MB

    2. Hallo Gunnar Bittersmann,

      PS: Ärgerlich, dass die Formatierung im Archiv kaputt ist.

      Ich habs mal geändert. Schau mal bitte, ob das so o.k. ist. Auf die verschachtelten Code-Auszeichnungen habe ich verzichten müssen. Das gibt mMn. Kramdown nicht her.

      Bis demnächst
      Matthias

      --
      Das Geheimnis des Könnens liegt im Wollen. (Giuseppe Mazzini)
      1. Tach!

        Auf die verschachtelten Code-Auszeichnungen habe ich verzichten müssen. Das gibt mMn. Kramdown nicht her.

        Man muss das auch nicht schachteln. Wenn PHP in HTML-Code vorkommt, dann sollte man das alles als PHP auszeichnen. Der „Syntax-Pinsel“ ist intelligent genug, den HTML-Teil als solchen zu erkennen.

        dedlfix.