/ 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
preg_replace
Fra : Michael Hansen


Dato : 10-10-02 00:01

Hej NG !

Jeg bruger følgende til at gøre internet- og mail-adresser til hyperlinks:

$resultat = preg_replace("/([^\w\/])(www\.[a-z0-9\-]+\.[a-z0-9\-]+)/i",
"$1http://$2", $resultat);
$resultat = preg_replace("/([\w]+:\/\/[\w-?&;#~=\.\/\@]+[\w\/])/i", "<A
TARGET=\"_blank\" HREF=\"$1\">$1</A>", $resultat);
$resultat =
preg_replace("/([\w-?&;#~=\.\/]+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9
]{1,3})(\]?))/i", "<A HREF=\"mailto:$1\">$1</A>", $resultat);

Det virker da også ganske fint, men problemet er at teksten i $resultat
variablen er html-kode og jeg øsker ikke at den skal gøre url'en imellem
<img> og </img> tags'ne til et hyperlink. Hvordan undgår jeg at dette sker.

Mvh
Michael Hansen



 
 
Jakob Møbjerg Nielse~ (10-10-2002)
Kommentar
Fra : Jakob Møbjerg Nielse~


Dato : 10-10-02 01:21

Michael Hansen wrote:
> Det virker da også ganske fint, men problemet er at teksten i
> $resultat variablen er html-kode og jeg øsker ikke at den skal gøre
> url'en imellem <img> og </img> tags'ne til et hyperlink. Hvordan
> undgår jeg at dette sker.

Jeg har "løst" samme problem, ved at kræve at der skal være white-space
foran URL'en:
preg_replace("/(\s)(www\.[a-z0-9\-]+\.[a-z0-9\-]+)/i", "$1http://$2",
$resultat);

Mit andet regexp, der søger efter [url] tags, kræver selvfølgelig at der
ikke er noget whitespace.

--
Jakob Møbjerg Nielsen | "Five exclamation marks, the
jakob@dataloger.dk | sure sign of an insane mind."
http://www.jakobnielsen.dk/ | -- Terry Pratchett, Reaper Man
Jeg søger et fuldtidsjob som programmør. Tag et kig på hjemmesiden.



Michael Hansen (10-10-2002)
Kommentar
Fra : Michael Hansen


Dato : 10-10-02 10:56

<SNIP>
>
> Mit andet regexp, der søger efter [url] tags, kræver selvfølgelig at der
> ikke er noget whitespace.
>
Jeg har nu lavet det således:

$resultat = preg_replace("/(\s)(www\.[a-z0-9\-]+\.[a-z0-9\-]+)/i",
"$1http://$2", $resultat);
$resultat = preg_replace("/([\w]+:\/\/[\w-?&;#~=\.\/\@]+[\w\/])/i", "<A
TARGET=\"_blank\" HREF=\"$1\">$1</A>", $resultat);

Men den tror stadig at url'en i følgende skal laves til et link
<img>src="http://www.domain.com/pic.gif"

Mvh
Michael




Michael Hansen (10-10-2002)
Kommentar
Fra : Michael Hansen


Dato : 10-10-02 11:05

<SNIP>
>
> Men den tror stadig at url'en i følgende skal laves til et link
> <img>src="http://www.domain.com/pic.gif"

Ovenstående skulle selvfølgelig være:
<img src="http://www.domain.com/pic.gif">

sorry

--
Mvh
Michael



Jakob Møbjerg Nielse~ (10-10-2002)
Kommentar
Fra : Jakob Møbjerg Nielse~


Dato : 10-10-02 14:49

Michael Hansen wrote:
> Ovenstående skulle selvfølgelig være:
> <img src="http://www.domain.com/pic.gif">

Du skal også søge efter whitespace i det andet rexexp:

$resultat = preg_replace("/(\s)(www\.[a-z0-9\-]+\.[a-z0-9\-]+)/i",
"$1http://$2", $resultat);
$resultat = preg_replace("/(\s)([\w]+:\/\/[\w-?&;#~=\.\/\@]+[\w\/])/i",
"$1<A
TARGET=\"_blank\" HREF=\"$2\">$1</A>", $resultat);

--
Jakob Møbjerg Nielsen | "Five exclamation marks, the
jakob@dataloger.dk | sure sign of an insane mind."
http://www.jakobnielsen.dk/ | -- Terry Pratchett, Reaper Man
Jeg søger et fuldtidsjob som programmør. Tag et kig på hjemmesiden.



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

Månedens bedste
Årets bedste
Sidste års bedste