Davs
> Sidder lige med et forum, hvor jeg gerne vil have at noget bliver
erstattet
> med et link. Når en bruger skriver f.eks.
www.domain.dk så bliver det
> automatisk rettet til et link - her bruger jeg følgende:
>
> <?php
> $tekst=
>
eregi_replace("(^|[[:space:]])((
www.)([a-zA-Z0-9@:%_.~#-\?&]+[a-zA-Z0-9@%_~#
> &/]))", "\\1<A HREF=\"
http://\\2\" TARGET=\"_blank\">\\2</A>", $tekst);
> ?>
Så hut jeg lige kan se, så vil email-adresser blive til
http://email@etsted.dk links og det dutter vel ikke så godt?
Jeg har lavet to patterns: Et som laver email-adresser om og et som laver
domæne-links om. Koden er hængt op nederst.
Der er ikke taget hensyn til nogen form for special-tegn...
Mvh. Thomas
Koden:
<?php
$tekst = "<p>Der boede en hund på
www.domain.dk - men den kaldte det bare
domain.dk. <br>Den ville gerne have en email-addresse, som hed
en.hund@domain.dk i stedet for hunden@what.a.domain.dk";
echo $tekst."\n\n";
// Henriks originale pattern
echo
eregi_replace("(^|[[:space:]])((
www.)([a-zA-Z0-9@:%_.~#-\?&]+[a-zA-Z0-9@%_~#
&/]))", "\\1<A HREF=\"
http://\\2\" TARGET=\"_blank\">\\2</A>",
$tekst)."\n\n";
// Email pattern
$pattern =
"([a-zA-Z0-9]+\.){0,}[a-zA-Z0-9]+@([a-zA-Z0-9]+\.)+[a-zA-Z0-9]+";
$tekst2 = eregi_replace($pattern, "<A HREF=\"mailto:\\0\"
TARGET=\"_blank\">\\0</A>", $tekst);
echo $tekst2."\n\n";
// Domain pattern
$pattern = "( )(([a-zA-Z0-9]+\.)+[a-zA-Z0-9]+)( |\.)";
echo eregi_replace($pattern, "\\1<A HREF=\"
http://\\2\"
TARGET=\"_blank\">\\2</A>\\4", $tekst2);
?>