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