• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

replace will nicht

Sisko

New member
hi,

was habe ich am folgenden Code nur falsch gemacht :(?

PHP:
function enable_url($str) {
$str = ereg_replace("(((f|ht){1}tp://)[a-zA-Z0-9@:%_.~#-\?&]+[a-zA-Z0-9@:%_~#\?&/])", "[<A HREF=\"\\1\" TARGET=\"_blank\">link</A>]", $str);
$str = ereg_replace("([[:space:]([{])([url]www.[/url][a-zA-Z0-9@:%_.~#-\?&]+[a-zA-Z0-9@:%_~#\?&/])", "\\1[<A HREF=\"http://\\2\" TARGET=\"_blank\">link</A>]", $str);
$str = ereg_replace("([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})","[<A HREF=\"mailto:\\1\">mail</A>]", $str);  return $str;
}

sinn sollte klar sein, wenn jwmand eine URL postet, soll diese in einen Hyperlink umgewandelt werden, das gleiche mit der mail...erstes replace funktioniert nur zur helfte (das mit dem http://) das 2. gar nett :(

thx
 
hm ich habe mal kurz nachgeschaut:

PHP:
function enable_url($str)
{
 // die erste Version muß ein wenig maskiert werden (mit ~), da sonst 2mal ersetzt wird!!
 $str = ereg_replace("([FfHh][Tt]+[Pp][:][/][/])([a-zA-Z0-9@:%_.~#-?&]+)","<a href='~\\1\\2' target='_blank'>link</a>",$str);
 // jetzt werden alle <a href></a>-tags ersetzt
 den Teil hab ich nicht so recht verstanden, was der machen soll?
 // alle emails
 $str = ere_replace("([_.0-9a-z-]+@([0-9a-z][0-9a-z-]+[.][a-z]{2,3})","<a href='mailto:\\0'>email</a>",$str);  

 // Maskierung aufheben
 $str = ereg_replace("([~])([FfHh][Tt]+[Pp][:][/][/])","\\1",$str);

return $str;
}

bitt emach nochmal einen comment zur 2. Zeile deines Codes, was der tun soll, de3nn es sah so aus, als würde er das ergebnis der 1. Zeile nochmal überarbeiten und dasselbe wieder hinschreiben
 
hi,

danke fuer die Hilfe...das mit den Slashs verstehe ich nicht, also vieleicht kannst du das nochmal posten und schreibst immer anstatt des / ein | oder so...die zweite Funktion sollte eigentlich das www. ersetzen...also was ich will ist: wenn jemand eine URL postet kann die ja verschieden aussehen (3 moeglichkeiten)

1.) http://www.url.de
2.) www.url.de
3.) url.de

das soll dann in einen Link gesetzt werden, den man anklickt und davor muss dann natuerlich das http dann stehen, weil es ja sonst mit dem Browser aerger gibt, also der Hyperlink muesste in den obigen Beipsielen dann so umgewandelt werden:

1.) http://www.url.de
2.) http://www.url.de
3.) http://url.de

==============================

und genau das gleiche eben mit der Mail funktion...

thx
 
Zurück
Oben