robotto7831a Geschrieben 15. September 2002 Geschrieben 15. September 2002 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 Zitieren
Valium Geschrieben 15. September 2002 Geschrieben 15. September 2002 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 Zitieren
Chaosmaker Geschrieben 16. September 2002 Geschrieben 16. September 2002 $replace = preg_replace("/\[URLS]([^[]*)\[\/URLS]/is","<a href=\"\\1\" target=\"_blank\">\\1</a>",$replace); Das sollte auf jeden Fall gehn. Zitieren
robotto7831a Geschrieben 17. September 2002 Autor Geschrieben 17. September 2002 OK. Danke. Ich werde es versuchen. Frank Zitieren
Himon.de Geschrieben 3. November 2003 Geschrieben 3. November 2003 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 Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.