Folgender Code soll aus einem Text ($text) gewisse Begriffe automatisch in andere umwandeln. in $replace_arr steht die Info dafür drin.
Nun ist das Problem, dass zb URIs die in der Form
[ url=
http://potassium.1338.at ] Potablog [/ url ] oder [ url ]
http://potassium.1338.at [/ url ] (Abstände wegdenken) NICHT mehr umgewandelt werden soll auch wenn sich innerhalb der Klammern etwas befindet, dass sonst umgewandelt gehört.
Beispiel
Google ersetze mit [ url ]www.google.at[/ url ]
[ url ]http://potassium.1338.at/google.php[/ url ] soll nicht ersetzt werden.
Hier nun der Code mit dem Regexp
PHP-Code:
foreach($replace_arr as $key => $value){
$modifier = (!empty($value["CASE_INSENSITIVE"]) ? "i" : "");
$text = preg_replace("/(.*?)[^\]]".$value["SRC"]."[^\[](.*?)/".$modifier,"$1$2".$value["REPLACE"]."$3$4",$text);
}
Kann mir da jemand weiterhelfen?