Veröffentlicht 15. September 200223 j Hallo zusammen, ich möchte in einem Text nach z.B. [urlS]www.web.de[/urlS] suchen und durch www.web.de ersetzen. Dafür habe ich schon folgendes Skript geschrieben. //URL rausfiltern $hilf = strstr($beitrag_anzeigen,'[URLS]'); $laenge = strlen($hilf); $hilf = substr($hilf, 6, $laenge); $bis = strpos($hilf,"[/URLS]"); $url= substr($hilf, 0, $bis); $replace = "[URLS]".$url; $replace = $replace."[/URLS]"; $replace2 = "<a href='".$url."' target='_blank'>$url</a>"; $beitrag_anzeigen = str_replace($replace,$replace2,$beitrag_anzeigen); [/php] Jetzt habe ich nur das Problem, wenn eine URL mehrmals in einem Text vorkommt, dann ersetzt der nur das erste Vorkommen. Wie kann ich die anderen auch ersetzen. Frank
15. September 200223 j Auf Deine Art und Weise nur, in dem Du Deine Suche mit Hilfe einer Schleife immer wieder durchlaufen lässt, bis er keine Links mehr findet. Du solltest Dir aber mal http://www.dclp-faq.de/ch/ch-regexp.html anschauen, da sind einige Beispiele in Deine Richtung, mit Regulären Ausdrücken macht das mehr Sinn, geht schneller und ist weniger Code. Müsste dann in etwa so aussehen: $replace = preg_replace("=[URLS](.*)[\\/URLS]=is","<a href='\\\\1' target='_blank'>\\\\1</a>",$replace); [/php] Sorry, nicht getestet und garantiert auch nicht richtig (schon lange nicht mehr gemacht), aber besser als Deine Lösung
16. September 200223 j $replace = preg_replace("/\[URLS]([^[]*)\[\/URLS]/is","<a href=\"\\1\" target=\"_blank\">\\1</a>",$replace); Das sollte auf jeden Fall gehn.
3. November 200321 j Das Script geht übrigends nicht. Sollte dann so aussehen wenn funken soll! PHP]$text = preg_replace("=\(.*)\[\/URL]=is","<a href='\\1' target='_blank'>\\1</a>",$text); gruss Himon
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.