Tach!
Für die Ausgabe im HTML-Body reicht einfach die PHP-Funktion htmlspecialchars(), allerdings sollte man lieber auch das Encoding des Strings angeben, und außerdem das Flag ENT_QUOTES, damit auch einfache Anführungszeichen behandelt werden.
Das Encoding anzugeben schadet nicht, bringt aber hierzulande (also für die gängigen Kodierungen ISO-8859-1 (eigentlich alle der ISO-8859-Familie) und UTF-8) keine Änderung im Ergebnis. Alle von der Funktion berücksichtigten Zeichen liegen im ASCII-Bereich. Eine Verwechslungsgefahr besteht nicht, da die "ASCII-Bytes" (00-7F) nicht noch einmal anderweitig verwendet werden, also vorwärts und rückwärts eindeutig sind. Anders wäre das bei mindestens einer der asiatischen Kodierungen, da werden einige Zeichen in Kombination mit Bytes aus dem Bereich 00..7F gebildet. Da ist die Kenntnis der genauen Kodierungsvorschrift wichtig, um Datenverlust zu vermeiden.
Im HTML-Body, also außerhalb von Tags (sprich: außerhalb von <...>) sind Anführungszeichen völlig ungefährlich. Ob da nur " oder auch ' oder keins von beiden umgeschrieben wird, ist sicherheitstechnisch egal. Anführungszeichen müssen lediglich als Inhalt eines Attributs Berücksichtigung finden, und da braucht es ENT_QUOTES nur, wenn man einfache Anführungszeichen als Attributbegrenzer nimmt. Auch hier schadet also ein generelles ENT_QUOTES nicht, bringt aber nur bedingt Punkte.
Dass das Framework trotzdem alle Erdenklichkeiten berücksichtigt, liegt daran, dass es ja universell einsetzbar sein soll und damit potentiell mit allen Erdenklichkeiten in Berührung kommen kann. Für ein genau abgegrenzes Projekt ist dieses "Alle-Situationen-berücksitigen" nicht unbedingt erforderlich. Das heißt allerdings nicht, dass man nicht genau wissen muss, welche Behandlung welches Ergebnis bringt und wann genau sie anzuwenden ist.
dedlfix.