Mailinglisten-Archive |
Achim Fink wrote: > Ich habe in einem Text jede menge leerzeichen, möchte aber nur die > Leerzeichen in einem mit „“ gekennzeichneten Teil ersetzen. Hi Achim, das "zwischen zwei Zeichen finden ist wohl eher nicht das Problem. Aber darin noch was zu ersetzen. Dafür muss man IMHO eine Callback-Funktion nutzen: <?php $text = ' das ist ein link: <a href="das ist der Link">LINK</a>'; function myReplace($matches) { return str_replace(' ', '_', $matches[1]); } $output = preg_replace_callback('%("[^"]+)%', "myReplace", $text); echo $output; ?> Der RegEx sucht nach allen Zeichenketten die in " eingeschlossen sind und übergibt diese der Callback-Funktion. Die ersetzt dann Leerzeichen mit Unterstrichen und gibt den ersetzten Text zurück. Gruß, Alex
php::bar PHP Wiki - Listenarchive