depp: Text einer Seite validieren

hi
wie schaff ich es, ohne in <a>, <img> <input> oder anderen elementen einer seite herumzupfuschen, alle umlaute und fehlerhaft-darstellbaren (sonder)zeichen valide zu machen? da das problem sicher schon andere vor mir hatten, hoffte ich, etwas zu finden; aber scheinbar suchte ich nach dem falschen.
könnt ihr mir evt. nen guten regexp für solche zwecke oder ne passende funktion nennen?
thx

  1. Hallo depp.

    wie schaff ich es, ohne in <a>, <img> <input> oder anderen elementen einer seite herumzupfuschen, alle umlaute und fehlerhaft-darstellbaren (sonder)zeichen valide zu machen?

    Was sind für dich nicht-valide Umlaute und Sonderzeichen?

    Willst du die Notation als Zeichenreferenz (z. B. ä als &auml;) erzwingen? Dafür gibt es htmlentities.

    Aber eigentlich ist dies völlig unnötig, wenn du eine geeignete Zeichenkodierung (wie z. B. UTF-8) überall (Datei, HTTP-Header) konsequent verwendest.

    Einen schönen Samstag noch.

    Gruß, Ashura

    --
    sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
    „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
    [HTML Design Constraints: Logical Markup]
    1. nunja, es scheint, als hätte firefox/mozilla manchmal ein problem, wenn z.b. ä als solches in einem linktext vorkommt, also <a href="#">ein ä</a>.
      das ergibt dann ä stätt ä :(
      im header hab ich:
      <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">

      was ist falsch dran?

      1. Hallo depp.

        das ergibt dann ä stätt ä :(
        im header hab ich:
        <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">

        Das ist kein Header, sondern lediglich ein meta-Element, welches für den Fall, dass die jeweilige Datei nicht im HTTP-Umfeld aufgerufen wurde und damit auch keine Header senden kann, eine Aussage über die Zeichenkodierung gibt. („http-equiv“ = „HTTP-Äquivalent“)

        was ist falsch dran?

        Die Zeichenkombination deutet auf ein UTF-8-kodiertes „ä“ hin.
        Wenn du unter „Ansicht“ → „Zeichenkodierung“ auf „Unicode (UTF-8)“ umschaltest, sollte alles korrekt angezeigt werden. Momentan sendet dein Server offenbar eine anderen Content-Type-Header mit der falschen Angabe zur Zeichenkodierung.

        Das heißt für dich: bringe deinen Server dazu, den korrekten Content-Type-Header auszuliefern. Da du PHP verwendest, kannst du dies recht einfach mit dem entsprechenden Kommando erledigen. Beachte, dass HTTP-Header vor jeglichem Inhalt gesendet werden müssen; nicht ein winziges Byte Daten darf ausgegeben werden, bevor nicht die Header ausgesandt wurden.

        Einen schönen Samstag noch.

        Gruß, Ashura

        --
        sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
        „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
        [HTML Design Constraints: Logical Markup]