Hallo!
Es wird trotzdem jedes :-) ersetzt, da es ja immer zwischen Anfang und Ende des Strings steht!!!!
hast Du denn die Modifikatoren benutzt - besonders /U?
Jaja! Ausserdem gibt es damit ein anderes Problem: Es wird nur ein Vorkommen von :-) ersetzt!
naja, ich weiß jedenfalls, warum ich Methode b) verwendet habe - geht prima ;)
Hab' ich jetzt auch!!! Geht!
Hier meine Variante fürs Archiv:
<CODE>
$splitedOutput=preg_split("/(<textarea.*?>|</textarea>|<input type="text".*?>)/msi",$Output,-1,PREG_SPLIT_DELIM_CAPTURE); // $Output aufsplitten
$Output="";
$textarea=false;
foreach ($splitedOutput as $actualPart) {
if (preg_match("/<textarea.*>/Umsi",$actualPart)) $textarea=true; // Beginnt ein Textarea?????
if (preg_match("/</textarea>/Umsi",$actualPart)) $textarea=false; // Endet ein Textarea????
if (!$textarea&&!preg_match("/<input type="text".*>/Umsi",$actualPart)) { // Falls kein INPUT Text-Field oder kein Textarea
$actualPart=eregi_replace(":-)","<IMG SRC="smiley.gif" ALT=":-)",$actualPart); // Hier Ersetzungen wie gewünscht!
}
$Output.=$actualPart; // und zusammenfügen
}
</CODE>
In $Output steht am Anfang die komplette HTML-Seite und zum Schluss die geparste Seite! Es funzt!
Noch mal danke!!!!
Ciao,
Andy