/ 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
Url til link
Fra : Mikkel Gravgaard


Dato : 21-01-02 00:19

Jeg har på phpbuilder.com fundet flg. funktion, som indsætter et link i en
tekststreng med en url:

function link_urls($string) {
//change single to double quotes (only necessary if you work with
databases)
$string = ereg_replace("\'", "\"", $string);
//change full stops and question marks that don't need to be linked
$string = ereg_replace("\? ", " question_mark ", $string);
$string = ereg_replace("\?\r\n"," question_mark_new_line ", $string);
$string = ereg_replace("\. ", " full_stop ", $string);
$string = ereg_replace("\.\r\n"," full_stop_new_line ", $string);
$string =
eregi_replace("((ftp://)|(http://)|(www))(([a-z0-9.\-])*)(@)?(([a-z0-9\.])*)
(([:/])?)((([a-z0-9]*)(@?)/*)+([.a-z]{2,4}){1})?((\??[a-z0-9\=]*)?)((\&[a-z0
-9\=]*)?)(([\.a-z]){2,4})?", "<a href=\"\\0\">\\0</a>", $string);
//change back dots and question marks
$string = ereg_replace(" full_stop_new_line ", "\.\r\n", $string);
$string = ereg_replace(" full_stop", "\.", $string);
$string = ereg_replace(" question_mark_new_line ", "\?\r\n", $string);
$string = ereg_replace(" question_mark", "\?", $string);
return $string;
}

F.eks bliver
"Se min hjemmeside på http://www.klokke.dk"
til
"Se min hjemmeside på <a href="http://www.klokke.dk">www.klokke.dk"

Den er bare ikke helt perfekt, og jeg aner ikke hvem der har lavet den (mht.
om der eksisterer en nyere version). Er der nogen der kender en der er
bedre?

Mangler/fejl ved ovenstående er umiddelbart:

1) Håndterer ikke "www" uden "http://" korrekt
2) Håndterer ikke "www" uden "." korrekt
3) Håndterer ikke "." efter url korrekt
4) Håndterer slet ikke "ftp." eller emailadresser.

/Mikkel



 
 
Jakob Jensen (21-01-2002)
Kommentar
Fra : Jakob Jensen


Dato : 21-01-02 02:02


"Mikkel Gravgaard" <grav@IHATESPAMklokke.dk> wrote in message
news:3c4b505c$0$275$edfadb0f@dspool01.news.tele.dk...
> Jeg har på phpbuilder.com fundet flg. funktion, som indsætter et link i en
> tekststreng med en url:
>
> function link_urls($string) {
> //change single to double quotes (only necessary if you work with
> databases)
> $string = ereg_replace("\'", "\"", $string);
> //change full stops and question marks that don't need to be linked
> $string = ereg_replace("\? ", " question_mark ", $string);
> $string = ereg_replace("\?\r\n"," question_mark_new_line ", $string);
> $string = ereg_replace("\. ", " full_stop ", $string);
> $string = ereg_replace("\.\r\n"," full_stop_new_line ", $string);
> $string =
>
eregi_replace("((ftp://)|(http://)|(www))(([a-z0-9.\-])*)(@)?(([a-z0-9\.])*)
>
(([:/])?)((([a-z0-9]*)(@?)/*)+([.a-z]{2,4}){1})?((\??[a-z0-9\=]*)?)((\&[a-z0
> -9\=]*)?)(([\.a-z]){2,4})?", "<a href=\"\\0\">\\0</a>", $string);
> //change back dots and question marks
> $string = ereg_replace(" full_stop_new_line ", "\.\r\n", $string);
> $string = ereg_replace(" full_stop", "\.", $string);
> $string = ereg_replace(" question_mark_new_line ", "\?\r\n", $string);
> $string = ereg_replace(" question_mark", "\?", $string);
> return $string;
> }
>
> F.eks bliver
> "Se min hjemmeside på http://www.klokke.dk"
> til
> "Se min hjemmeside på <a href="http://www.klokke.dk">www.klokke.dk"
>
> Den er bare ikke helt perfekt, og jeg aner ikke hvem der har lavet den
(mht.
> om der eksisterer en nyere version). Er der nogen der kender en der er
> bedre?
>
> Mangler/fejl ved ovenstående er umiddelbart:
>
> 1) Håndterer ikke "www" uden "http://" korrekt
> 2) Håndterer ikke "www" uden "." korrekt
> 3) Håndterer ikke "." efter url korrekt
> 4) Håndterer slet ikke "ftp." eller emailadresser.
>
> /Mikkel
>
>

Hej Mikkel

Jaaa det hele kan lave på en linie måske to.

1. $text = ereg_replace(" www.", " http://www.", $text);
2. $text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]",
"<a href=\"\\0\">\\0</a>", $text);

Så burde den være i hus... 2. er nappet fra
http://dk.php.net/manual/en/function.ereg-replace.php




Jakob Jensen (21-01-2002)
Kommentar
Fra : Jakob Jensen


Dato : 21-01-02 02:04


"Jakob Jensen" <webmaster@debatkat.dk> wrote in message
news:a2fp5i$s9j$1@sunsite.dk...
>
> "Mikkel Gravgaard" <grav@IHATESPAMklokke.dk> wrote in message
> news:3c4b505c$0$275$edfadb0f@dspool01.news.tele.dk...
> > Jeg har på phpbuilder.com fundet flg. funktion, som indsætter et link i
en
> > tekststreng med en url:
> >
> > function link_urls($string) {
> > //change single to double quotes (only necessary if you work with
> > databases)
> > $string = ereg_replace("\'", "\"", $string);
> > //change full stops and question marks that don't need to be linked
> > $string = ereg_replace("\? ", " question_mark ", $string);
> > $string = ereg_replace("\?\r\n"," question_mark_new_line ", $string);
> > $string = ereg_replace("\. ", " full_stop ", $string);
> > $string = ereg_replace("\.\r\n"," full_stop_new_line ", $string);
> > $string =
> >
>
eregi_replace("((ftp://)|(http://)|(www))(([a-z0-9.\-])*)(@)?(([a-z0-9\.])*)
> >
>
(([:/])?)((([a-z0-9]*)(@?)/*)+([.a-z]{2,4}){1})?((\??[a-z0-9\=]*)?)((\&[a-z0
> > -9\=]*)?)(([\.a-z]){2,4})?", "<a href=\"\\0\">\\0</a>", $string);
> > //change back dots and question marks
> > $string = ereg_replace(" full_stop_new_line ", "\.\r\n", $string);
> > $string = ereg_replace(" full_stop", "\.", $string);
> > $string = ereg_replace(" question_mark_new_line ", "\?\r\n", $string);
> > $string = ereg_replace(" question_mark", "\?", $string);
> > return $string;
> > }
> >
> > F.eks bliver
> > "Se min hjemmeside på http://www.klokke.dk"
> > til
> > "Se min hjemmeside på <a href="http://www.klokke.dk">www.klokke.dk"
> >
> > Den er bare ikke helt perfekt, og jeg aner ikke hvem der har lavet den
> (mht.
> > om der eksisterer en nyere version). Er der nogen der kender en der er
> > bedre?
> >
> > Mangler/fejl ved ovenstående er umiddelbart:
> >
> > 1) Håndterer ikke "www" uden "http://" korrekt
> > 2) Håndterer ikke "www" uden "." korrekt
> > 3) Håndterer ikke "." efter url korrekt
> > 4) Håndterer slet ikke "ftp." eller emailadresser.
> >
> > /Mikkel
> >
> >
>
> Hej Mikkel
>
> Jaaa det hele kan lave på en linie måske to.
>
> 1. $text = ereg_replace(" www.", " http://www.", $text);
> 2. $text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]",
> "<a href=\"\\0\">\\0</a>", $text);
>
> Så burde den være i hus... 2. er nappet fra
> http://dk.php.net/manual/en/function.ereg-replace.php
>
>
>

Glemte lige

Hilsen Jakob Jensen
http://www.debatkat.dk




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