Zitat:
|
Damit werden die frisch encodierten Entities wieder zurückersetzt.
|
Stimmt - aber nur die "<>"-Zeichen. Wenn ihm die egal sind, lässt er das Replacen halt weg:
PHP-Code:
$umgewandelt = htmlspecialchars( $derString, ENT_NOQUOTES, "ISO-8859-1", FALSE);
Wenn er aber wirklich nur das "&"-Zeichen ersetzen will, und sonst gar nichts, kann er vielleicht sowas daraus tricksen:
PHP-Code:
$rep_lt ="#l_t#";
$it_lt=1;
while(strstr($derString,$rep_lt)===TRUE) {
$rep_lt="#l".str_repeat("_",++$it_lt)."t#";
}
$rep_gt ="#g_t#";
$it_gt=1;
while(strstr($derString,$rep_gt)===TRUE) {
$rep_gt="#g".str_repeat("_",++$it_gt)."t#";
}
$umgewandelt = str_replace(array($rep_lt, $rep_gt), array("<", ">"),str_replace(array("<", ">"), array("<", ">"), htmlspecialchars( str_replace(array("<", ">"), array($rep_lt, $rep_gt),$derString), ENT_NOQUOTES, "ISO-8859-1", FALSE)));
Schön ist zwar was anderes ;), aber bei meinem Test-String klappt es jedenfalls:
$derString="Wer A & B sagt, muss auch ß sagen <img src='/bla'> Code: <code>";
Ergebnis:
Wer A & B sagt, muss auch ß sagen <img src='/bla'> Code: <code>
Viele Grüße!