paulworld: HTML Tags in php

Hallo ich möchte eine horizontal Linie in php machen das geht ja auch:

echo "<hr>";

aber wenn ich jetzt Atribute hinzufügen will klappt das nicht so recht. Es kommt eine Fehlermeldung also ich möchte z.B. so eine Linie haben:

echo "<hr width="680" align="center">";

Da ich mich mit php noch nicht so genau auskenne sondern nur mit html würde ich gerne wissen wie ich das schreiben muss damit so eine Linie auch in html kommt?

  1. Hallo,

    [...] aber wenn ich jetzt Atribute hinzufügen will klappt das nicht so recht. Es kommt eine Fehlermeldung ...

    und wenn du konkrete Hilfe möchtest, dann verrate bloß nicht, wie die Fehlermeldung lautet, das könnte dem Helfer ja einen Hinweis geben. ;-)
    Nee, im Ernst - hier ist der Fall trivial:

    echo "<hr width="680" align="center">";

    ^          ^
            |          +--- und hier endet er.
            +--- Hier beginnt der String, der ausgegeben werden soll ...

    Da ich mich mit php noch nicht so genau auskenne sondern nur mit html würde ich gerne wissen wie ich das schreiben muss damit so eine Linie auch in html kommt?

    Es gibt mehrere Möglichkeiten.
    Die triviale: Vermeide das Problem, indem du für den HTML-Teil einfache Anführungszeichen nimmst.
    Die primitive: Maskiere die Anführungszeichen innerhalb des Strings mit einem vorangestellten Backslash.
    Die elegante: Verwende die HEREDOC-Syntax, vor allem, wenn du mehrere Zeilen HTML hintereinander ausgeben willst.

    So long,
     Martin

    --
    Männer haben nur eine Angst: Die Angst, kein Mann zu sein.
      (Liv Tyler, US-Schauspielerin)
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. Hi!

      Es gibt mehrere Möglichkeiten.
      Die triviale: Vermeide das Problem, indem du für den HTML-Teil einfache Anführungszeichen nimmst.
      Die primitive: Maskiere die Anführungszeichen innerhalb des Strings mit einem vorangestellten Backslash.
      Die elegante: Verwende die HEREDOC-Syntax, vor allem, wenn du mehrere Zeilen HTML hintereinander ausgeben willst.

      Die PHP-Version: ?><hr width="680" align="center"><?php

      Lo!

    2. @@Der Martin:

      nuqneH

      echo "<hr width="680" align="center">";
      Es gibt mehrere Möglichkeiten.
      Die triviale: Vermeide das Problem, indem du für den HTML-Teil einfache Anführungszeichen nimmst.

      Du meinst echo "<hr width='680' align='center'>";? Nö, es besteht keine Notwendigkeit, dass der PHP-Parser den String nach Variablen parst.

      Also wenn schon, dann andersrum: echo '<hr width="680" align="center">';

      Die primitive: Maskiere die Anführungszeichen innerhalb des Strings mit einem vorangestellten Backslash.
      Die elegante: Verwende die HEREDOC-Syntax, vor allem, wenn du mehrere Zeilen HTML hintereinander ausgeben willst.

      Die sinnvolle: Verwende keine missbilligten HTML-Attribute für Darstellungsangaben, sondern CSS. echo '<hr>'; Mehr kommt nicht in die Tüte^W^W^Wins Markup.

      hr { width: 100px; margin-left: auto; margin-right: auto } kommt ins Stylesheet.

      Qapla'

      --
      Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
      (Mark Twain)
      1. Die sinnvolle: Verwende keine missbilligten HTML-Attribute für Darstellungsangaben, sondern CSS. echo '<hr>'; Mehr kommt nicht in die Tüte^W^W^Wins Markup.

        Eigentlich ist das hr-Element ja auch schon Darstellung... naja gut, es symbolisiert einen "paragraph-level thematic break". Aber eigentlich sollte man fünf mal darüber nachdenken, ob man das wirklich gerade hat/macht/will.
        Wahrscheinlicher ist doch, dass man eine horizontale Linie haben möchte und dann tut es auch ein generisches Element oder sogar das vorangehende oder nachfolgende Element bekommt einen Rahmen an der entsprechenden Stelle.
        Refferenzen:
        W3C on HTML
        W3C on HTML5

  2. Aloha 'oe,

    echo "<hr width="680" align="center">";

    Das Problem ist, das du den String mit einem Anführungszeichen beginnst, und ihn nach width= wieder beendest.

    Schaue dir mal die Dokumentation an dieser Stelle an. Dort wird erklärt, wie man spezielle Zeichen in einem String escapen und ausgeben kann.

    Gruß

    Volker