/ 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
lav link klibare...
Fra : Henrik Stidsen


Dato : 08-05-02 15:21

Hvordan laver jeg en function der udskifter http:// adresser til et
klikbart link i en tekst ?
- evt, så den kan udskifte {LINK:http://adresse/} til et link...

Jeg har prøvet med noget eregi og lign., men den gik 120% i koks hvis
der var flere links på samme linie...

--
Henrik Stidsen | HS235-DK | Ikke eksisterende samleobjekt
http://min.hjemmeside.er.paa.http.kolon.2-x-skraastreg.susie.dk/
"These opinions are my own, though for a small fee they
be yours too." -- Dave Haynie

 
 
Klaus Rene Hansen (08-05-2002)
Kommentar
Fra : Klaus Rene Hansen


Dato : 08-05-02 15:39

http://sconk.dk/php_stuff.phps

Det er noget jeg har fra et gammelt forum men har mistet credits ;(


On Wed, 08 May 2002 16:20:40 +0200, Henrik Stidsen wrote:

> Hvordan laver jeg en function der udskifter http:// adresser til et
> klikbart link i en tekst ?
> - evt, så den kan udskifte {LINK:http://adresse/} til et link...
>
> Jeg har prøvet med noget eregi og lign., men den gik 120% i koks hvis
> der var flere links på samme linie...
>

Rasmus Beuchert \(es~ (08-05-2002)
Kommentar
Fra : Rasmus Beuchert \(es~


Dato : 08-05-02 18:02

Gå ind på http://www.ljweb.biz/?Ref=usefulscripts og kig efter tagster_lib

MVH

Rasmus Beuchert (speedy@espeedy.dk)

"Henrik Stidsen" <spamtrap@spammer.dk> wrote in message
news:Xns9208A5CE758D2hstidsen@212.54.64.135...
> Hvordan laver jeg en function der udskifter http:// adresser til et
> klikbart link i en tekst ?
> - evt, så den kan udskifte {LINK:http://adresse/} til et link...
>
> Jeg har prøvet med noget eregi og lign., men den gik 120% i koks hvis
> der var flere links på samme linie...
>
> --
> Henrik Stidsen | HS235-DK | Ikke eksisterende samleobjekt
> http://min.hjemmeside.er.paa.http.kolon.2-x-skraastreg.susie.dk/
> "These opinions are my own, though for a small fee they
> be yours too." -- Dave Haynie



Henrik Stidsen (08-05-2002)
Kommentar
Fra : Henrik Stidsen


Dato : 08-05-02 23:05

"Rasmus Beuchert \(espeedy.dk\)" <espeedy@espeedy.dk> wrote in
news:3cd95a04$0$97313$edfadb0f@dspool01.news.tele.dk

> Gå ind på http://www.ljweb.biz/?Ref=usefulscripts og kig efter
> tagster_lib

Jeg siger tak til jer begge og kigger på det ;)

--
Henrik Stidsen | HS235-DK | Ikke eksisterende samleobjekt
http://min.hjemmeside.er.paa.http.kolon.2-x-skraastreg.susie.dk/
"These opinions are my own, though for a small fee they
be yours too." -- Dave Haynie

Thomas Lindgaard (09-05-2002)
Kommentar
Fra : Thomas Lindgaard


Dato : 09-05-02 11:27


"Henrik Stidsen" <spamtrap@spammer.dk> wrote in message
news:Xns9208A5CE758D2hstidsen@212.54.64.135...
> Hvordan laver jeg en function der udskifter http:// adresser til et
> klikbart link i en tekst ?
> - evt, så den kan udskifte {LINK:http://adresse/} til et link...

Har du kigget på http://www.php.net/manual/en/function.ereg-replace.php
eksempel 3?

/Thomas



Henrik Stidsen (09-05-2002)
Kommentar
Fra : Henrik Stidsen


Dato : 09-05-02 15:04

"Thomas Lindgaard" <thomas@it-snedkeren.dk> wrote in
news:3cda4ed8$0$18591$edfadb0f@dspool01.news.tele.dk

> Har du kigget på
> http://www.php.net/manual/en/function.ereg-replace.php eksempel
> 3?

har da kigget på den side ja, men åbenbart ikke godt nok
- tak for det forslag!

--
Henrik Stidsen | HS235-DK | Ikke eksisterende samleobjekt
http://min.hjemmeside.er.paa.http.kolon.2-x-skraastreg.susie.dk/
"These opinions are my own, though for a small fee they
be yours too." -- Dave Haynie

Henrik Stidsen (09-05-2002)
Kommentar
Fra : Henrik Stidsen


Dato : 09-05-02 16:20

"Thomas Lindgaard" <thomas@it-snedkeren.dk> wrote in
news:3cda4ed8$0$18591$edfadb0f@dspool01.news.tele.dk

> Har du kigget på
> http://www.php.net/manual/en/function.ereg-replace.php eksempel
> 3?

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

- hvordan får jeg den til at undlade at lave links der allerede er
klibare klikbare igen ? (altså, <A href="http://adresse/">tekst
skal ikke have lavet værdien i href om til et link - og dermed have
linket ødelagt!!)
Jeg er ikke så god til regex, så mine forsøg med at få den til at
stoppe hvis der var et " til sidst lykkedes ikke...

--
Henrik Stidsen | HS235-DK | Ikke eksisterende samleobjekt
http://min.hjemmeside.er.paa.http.kolon.2-x-skraastreg.susie.dk/
"These opinions are my own, though for a small fee they
be yours too." -- Dave Haynie

Thomas Lindgaard (09-05-2002)
Kommentar
Fra : Thomas Lindgaard


Dato : 09-05-02 21:44

Davs

"Henrik Stidsen" <spamtrap@spammer.dk> wrote in message
news:Xns9209AFFB077F5hstidsen@212.54.64.135...
> - hvordan får jeg den til at undlade at lave links der allerede er
> klibare klikbare igen ? (altså, <A href="http://adresse/">tekst
> skal ikke have lavet værdien i href om til et link - og dermed have
> linket ødelagt!!)

Æv, nu stiller du jo store krav :)

Kan man evt. nøjes med at sige, at der kun må ske noget, hvis der er
mellemrum omkring urlen?

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

Jeg har ikke testet det.

/Thomas



Henrik Stidsen (10-05-2002)
Kommentar
Fra : Henrik Stidsen


Dato : 10-05-02 00:56

"Thomas Lindgaard" <thomas@it-snedkeren.dk> wrote in
news:3cdadf8e$0$78783$edfadb0f@dspool01.news.tele.dk

> Æv, nu stiller du jo store krav :)

jeps ;)

> Kan man evt. nøjes med at sige, at der kun må ske noget, hvis
> der er mellemrum omkring urlen?
>
> $text =
> ereg_replace("[:space:][[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]
> [:space:]", "<a href=\"\\0\">\\0</a>", $text);

Hvis linket står i starten af en linie fanger den det slet ikke
(intet mellemrum i starten), hvis jeg fjerner kravet om mellemrum før
og beholder det efter, så laver den det totalt mærkeligt, f.eks.
bliver ftp://mirrors.tiscali.dk/ lavet til et link til
ftp://mirros.tiscal - resten står der stadig men er ikke lavet til et
link! - jeg forstår intet...
(den laver iøvrigt samme trick hvis jeg sætter et ? efter [:space:] i
begyndelsen...)

--
Henrik Stidsen | HS235-DK | Ikke eksisterende samleobjekt
http://min.hjemmeside.er.paa.http.kolon.2-x-skraastreg.susie.dk/
"These opinions are my own, though for a small fee they
be yours too." -- Dave Haynie

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


Dato : 10-05-02 19:53

Davs

> Hvis linket står i starten af en linie fanger den det slet ikke
> (intet mellemrum i starten), hvis jeg fjerner kravet om mellemrum før
> og beholder det efter, så laver den det totalt mærkeligt, f.eks.
> bliver ftp://mirrors.tiscali.dk/ lavet til et link til
> ftp://mirros.tiscal - resten står der stadig men er ikke lavet til et
> link! - jeg forstår intet...

Så prøver vi lige igen:

<?php

$text = "Der var engang en lille <a href=\"http://www.hund.dk/\">hund
med vinger " .
" og et link: http://tv.tv2.dk. " .
" Hunden hed <a href=http://www.feta.dk>Henning" .
" ... men det kunne <a href=ftp://sunsite.auc.dk/>den</a> jo ikke gøre
for." .
" Vi skal osse lige have en med <a HREF=\"http://www.vovse.dk\">store
bogstaver.";

echo ereg_replace(

"([^\"=])((http|HTTP|https|HTTPS|ftp|FTP)://[^<>[:space:]]+[[:alnum:]/])([^\
"])",
"\\1<a href=\"\\2\">\\2</a>\\4",
$text
);

?>

Nu matches noget som IKKE er et " eller = efterfulgt af http/https/ftp og
noget mere url-værk og til sidst noget som IKKE er et ".

Mvh. Thomas



Henrik Stidsen (10-05-2002)
Kommentar
Fra : Henrik Stidsen


Dato : 10-05-02 22:50

"Thomas Lindgaard" <thomas@it-snedkeren.dk> wrote in
news:3cdc1817$0$18644$edfadb0f@dspool01.news.tele.dk

> Så prøver vi lige igen:

Se det virker hvis jeg kopierer dit forslag direkte ind i en ny php
fil, hvorfor det så ikke virker når jeg sætter det ind i mit eget
script ved jeg ikke... :(

Jeg må prøve mig lidt frem, jeg vender tilbage!

--
Henrik Stidsen | HS235-DK | Ikke eksisterende samleobjekt
http://min.hjemmeside.er.paa.http.kolon.2-x-skraastreg.susie.dk/
"These opinions are my own, though for a small fee they
be yours too." -- Dave Haynie

Henrik Stidsen (10-05-2002)
Kommentar
Fra : Henrik Stidsen


Dato : 10-05-02 23:16

Henrik Stidsen <spamtrap@spammer.dk> wrote in
news:Xns920AF227B1440hstidsen@212.54.64.135

> Jeg må prøve mig lidt frem, jeg vender tilbage!

Sådan!

Lidt modifikationer til mit script, en enkelt i dit (ereg_replace til
eregi_replace) og så virker lortet ;)

Tusind tak allesammen ;)

--
Henrik Stidsen | HS235-DK | Ikke eksisterende samleobjekt
http://min.hjemmeside.er.paa.http.kolon.2-x-skraastreg.susie.dk/
"These opinions are my own, though for a small fee they
be yours too." -- Dave Haynie

Thomas Lindgaard (11-05-2002)
Kommentar
Fra : Thomas Lindgaard


Dato : 11-05-02 08:43

Davs

> Lidt modifikationer til mit script, en enkelt i dit (ereg_replace til
> eregi_replace) og så virker lortet ;)

Gooodt så :)

.... men når du laver det om til eregi_replace, så kan du jo osse fjerne
HTTP, HTTPS og FTP:

echo eregi_replace(
"([^\"=])((http|https|ftp)://[^<>[:space:]]+[[:alnum:]/])([^\"])",
"\\1<a href=\"\\2\">\\2</a>\\4",
$text
);

Mvh.
/Thomas



Henrik Stidsen (11-05-2002)
Kommentar
Fra : Henrik Stidsen


Dato : 11-05-02 12:59

"Thomas Lindgaard" <thomas@it-snedkeren.dk> wrote in
news:3cdccc89$0$68621$edfadb0f@dspool01.news.tele.dk

> ... men når du laver det om til eregi_replace, så kan du jo osse
> fjerne HTTP, HTTPS og FTP:

jepser, det har jeg også gjort - ligesom jeg har ændret variabel
navnet ;)

Der er dog stadig en lille ting... - hvis URL'en står som det
allersidste på linien laver den en /> bagefter, hvis jeg sætter et
mellemrum efter den forsvinder det. Jeg har prøvet at rette i den
\n\r du har indsat, ingen forskel...

--
Henrik Stidsen | HS235-DK | Ikke eksisterende samleobjekt
http://min.hjemmeside.er.paa.http.kolon.2-x-skraastreg.susie.dk/
"These opinions are my own, though for a small fee they
be yours too." -- Dave Haynie

Thomas Lindgaard (11-05-2002)
Kommentar
Fra : Thomas Lindgaard


Dato : 11-05-02 16:34

Davs

> Der er dog stadig en lille ting... - hvis URL'en står som det
> allersidste på linien laver den en /> bagefter, hvis jeg sætter et
> mellemrum efter den forsvinder det. Jeg har prøvet at rette i den
> \n\r du har indsat, ingen forskel...

Det er fordi den vil prøve at matche noget efter URLen - denne dims ([^\"])
sidst i det regulære udtryk er synderen. Den kan du fjerne hvis du så osse
fjerner \\4.

echo eregi_replace(
"([^\"=])((http|https|ftp)://[^<>[:space:]]+[[:alnum:]/])",
"\\1<a href=\"\\2\">\\2</a>",
$text
);

Nu vil den osse matches URLer som står bagerst i en streng... men dem der
står forrest bliver ikke fanget (af samme årsag).

Jeg tror jeg ville holde mig til den hvor dimsen og \\4 stadig er der og så
pakke den ind i en funktion. Funktionen klistrer et mellemrum i hovede og
r.. af strengen, kalder eregi_replace og returnerer strengen minus de to
ekstra mellemrum:

function url2link($text) {
$text =
eregi_replace("([^\"=])((http|https|ftp)://[^<>[:space:]]+[[:alnum:]/])([^\"
])",
"\\1<a href=\"\\2\">\\2</a>\\4",
" " . $text . " "
);

return substr($text, 1, strlen($text) - 2);
}

Mvh.
/Thomas



Henrik Stidsen (12-05-2002)
Kommentar
Fra : Henrik Stidsen


Dato : 12-05-02 18:06

"Thomas Lindgaard" <thomas@dnspilot.com> wrote in
news:abjdfh$1jke$1@news.cybercity.dk

> Nu vil den osse matches URLer som står bagerst i en streng...
> men dem der står forrest bliver ikke fanget (af samme årsag).

Virker ikke :/

> Jeg tror jeg ville holde mig til den hvor dimsen og \\4 stadig
> er der og så pakke den ind i en funktion. Funktionen klistrer et
> mellemrum i hovede og r.. af strengen, kalder eregi_replace og
> returnerer strengen minus de to ekstra mellemrum:

Den går ikke. Input er jo ikke nødvendigvis kun en linie, dvs. hvis
linket står midt i $input efterfulgt at et linieskift vil skidtet
ikke hjælpe noget alligevel..

--
Henrik Stidsen | HS235-DK | Ikke eksisterende samleobjekt
http://min.hjemmeside.er.paa.http.kolon.2-x-skraastreg.susie.dk/
"These opinions are my own, though for a small fee they
be yours too." -- Dave Haynie

Frost (10-05-2002)
Kommentar
Fra : Frost


Dato : 10-05-02 08:26

"Henrik Stidsen" <spamtrap@spammer.dk> skrev i en meddelelse
news:Xns9208A5CE758D2hstidsen@212.54.64.135...
> Hvordan laver jeg en function der udskifter http:// adresser til et
> klikbart link i en tekst ?

Hej Henrik

Selv bruger jeg denne funktion:

function parsehyper($string) {
$search = array
("/([\w\.\/\&\=\?\-]+)@([\w\.\/\&\=\?\-]+)/",

"/((ftp(7?):\/\/)|(ftp\.))([\w\.\/\&\=\?\-]+)/",

"/((http(s?):\/\/)|(www\.))([\w\.\/\&\=\?\-]+)/");
$replace = array ("<a class=normallink href='mailto:$1@$2'>$1@$2</a>",
"<a class=normallink
href='ftp$3://$4$5'target='_blank'>$2$4$5</a>",
"<a class=normallink
href='http$3://$4$5'target='_blank'>$2$4$5</a>");
return preg_replace ($search, $replace, $string);
}

//Thomas



Henrik Stidsen (10-05-2002)
Kommentar
Fra : Henrik Stidsen


Dato : 10-05-02 18:55

"Frost" <pppp@DELETE_THISeurope.com> wrote in
news:3cdb761c$0$18645$edfadb0f@dspool01.news.tele.dk

> Selv bruger jeg denne funktion:

Tjaa, den virker ikke til mit brug,
1. Den er ikke case insensitiv (HTTP trigger den ikke)
2. Den har samme problem som alle de andre, den ødelægger det hvis et
link allerede er skrevet som et link.

Men ellers tak for forslaget!

--
Henrik Stidsen | HS235-DK | Ikke eksisterende samleobjekt
http://min.hjemmeside.er.paa.http.kolon.2-x-skraastreg.susie.dk/
"These opinions are my own, though for a small fee they
be yours too." -- Dave Haynie

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste