suit: FF 3.5.2 CDATA Bug?

Beitrag lesen

Mit PHP und preg_replace ist das ein 1-Zeiler - als Suchmuster sollte folgendes taugen (nicht getestet) (<![CDATA[)(.*)(]]>), ersetzt wird das mit $1 + htmlspecialchars($2) + $3

Nachtrag (fürs Archiv):

<?php  
	// Das öffnende und schließnede Tag für den CDATA bereich wollen wir nicht - darum gleich non-capturing parentheses drumherum  
	// der e-Modifikator sorgt dafür, dass der Code evaluiert wird ([link:http://at2.php.net/preg_replace@title=Beispiel 4], [link:http://at2.php.net/manual/de/reference.pcre.pattern.modifiers.php@title=e (PREG_REPLACE_EVAL)])  
	$search = '/(?:<!\[CDATA\[)(.*)(?:\]\]>)/e';  
	// [link:http://at2.php.net/htmlspecialchars@title=htmlspecialchars] sollte für die HTML-Ausgabe passen (ggf. sollte man ENT_QUOTES verwenden)  
	$replace = 'htmlspecialchars("\\1")';  
	$string = '<![CDATA[<span class="error">Ich bin ein Beispielcode</span>]]>';  
	  
	echo preg_replace($search, $replace, $string);  
?>