dedlfix: preg_replace bzw. htmlentities | macht das so Sinn ?

Beitrag lesen

echo $begrüßung;

$content_code_str = '<p>Der <span class="formatiert">formatierte</span> Text </p>';
Der einfachste Ansatz wäre:

Ist er nicht.

$content_code_str = htmlentities($content_code_str); //maskiert alles
$content_code_str = str_replace('&lt;', '<', $content_code_str); //demaskiert '<'
$content_code_str = str_replace('&gt;', '>', $content_code_str); //demaskiert '>'

Der eizige Haken, den ich mir vorstellen kann ist der, dass hinterher
'<' und '>' als Text nicht mehr maskiert wären.

Du hast " und & vergessen. Wenn du eins der Zeichen <, > und & und innerhalb von Attributen auch " im mit HTML-Code gespickten Fließtext stehen hast und diese Zeichen nicht gemäß den Regeln zur Maskierung HTML-eigener Zeichen notiert hast, ist das falsch. Wenn du die Regeln beachtet hast, dann wird beispielsweise ein &lt; durch htmlentities() oder htmlspecialchars() zu &amp;lt; Wenn du mit str_replace() die &amp; wieder zu & machst, wird das Fließtext-< wieder zum korrekt notierten &lt;

Gibt's sonst noch etwas, dass gegen den Ansatz spricht  ?

Ja, es spricht das unnötige Verwenden von Entities und Nummerischen Zeichenreferenzen anstelle der direkten Verwendung dieser Zeichen nebst passender Kodierungsangabe dagegen.

echo "$verabschiedung $name";