Hallo!
a. vielleicht so:
"/(^|</textara>):-)($|<textarea>)/U" ersetzen durch: "$1<img src="smiley">$2"
Brett vorm Kopf zerschlagend!!!
Also der Ansatz ist total richtig, wieso bin ich da nicht selbst draufgekommen???
Gut, der Ausdruck passt natürlich nicht ganz, aber ich werd mal rumtesten!
In Worten: Es wird halt zwischen Anfang und Ende des Strings ersetzt oder zwischen </textarea> und Ende oder zwischen Anfang und <textarea>! Mann, ist einfach, brillant!
Schau ma mal!
b. String an "/<textarea>(.*)</textarea>/" mit preg_split() auftrennen, alle "/<textarea>(.*)</textarea>/" mit preg_match_all() einsammeln und in den Elementen, die aus preg_split hervorgegangen sind, die Erseztung durchführen. Anschließend die Arrays im Reißverschußsystem wieder zusammenfügen.
Ist ein wenig kompliziert, ich bau mal a) aus!
Danke,
Andy