/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Lidt mere på.....
Fra : Henrik Pedersen


Dato : 10-02-02 14:41

Hey NG!

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);
?>

Mange skriver typsik bare domain.dk - hvilket jo ikke bliver rettet
automatisk. Derfor vil jeg gerne have noget med alt efterfulgt af entetn
..dk - .com - .net - .org bliver rettet automatisk. Nogle forslg til hvordan
jeg tilføjer det i scriptet oven over??

Takker på forhånd......

--

-------------------m-Õ--Õ-m------------------
Med venlig hilsen / Best regards

Henrik Pedersen - BeOne.dk
Email: hp@beone.dk
Site: www.beone.dk

May U Live 2 See The Dawn



 
 
Thomas Lindgaard (10-02-2002)
Kommentar
Fra : Thomas Lindgaard


Dato : 10-02-02 20:17

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);
?>



Thomas Lindgaard (10-02-2002)
Kommentar
Fra : Thomas Lindgaard


Dato : 10-02-02 20:24

Davs igen

> // 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);
> ?>

Det skal osse lige bemærkes, at domain-patternet kun matcher, hvis domænet
står efter et mellemrum (og der er sikkert andre begrænsninger).

Mvh. Thomas



Søg
Reklame
Statistik
Spørgsmål : 177506
Tips : 31968
Nyheder : 719565
Indlæg : 6408562
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste