Avatar billede dj-hupi Nybegynder
11. januar 2009 - 13:49 Der er 4 kommentarer og
1 løsning

preg_replace href og img

Hejsa

Jeg har en
$txt2 = preg_replace("#((?:https?|ftp)://[\w./?=&\#%-_]+(?!\.))#i","<a href='$1' target='_blank'>Link</a>", $txt);
Som laver links navne om til Link, men den tager også img henvisninger:
<img src="<a href='http://www.akvarieviden.dk/billeder/2_bf9495e2c8.png' target='_blank'>Link</a>"/>

Har siddet lidt fast i det længe nu. Nogen god ide til hvordan jeg sortere hvis det er en img src="" fra?
Avatar billede jakobdo Ekspert
11. januar 2009 - 14:08 #1
Kunne du ikke lave et hack, og bruge strip_tags() inden du laver din replace ?
Avatar billede dj-hupi Nybegynder
11. januar 2009 - 14:15 #2
Kan godt se ideen i det... Kan du gi et eksemple ?
Avatar billede jakobdo Ekspert
11. januar 2009 - 15:14 #3
$txt = strip_tags($txt);
$txt2 = preg_replace("#((?:https?|ftp)://[\w./?=&\#%-_]+(?!\.))#i","<a href='$1' target='_blank'>Link</a>", $txt);
Avatar billede dj-hupi Nybegynder
19. april 2009 - 15:22 #4
Jeg har fået løst problemmet vha.

function transformUrl($str){
    $str=eregi_replace("(^| |>)(www([.]?[a-zA-Z0-9_/-?])[^<]*)", "\\1<a href=\"http://\\2\" target=\"_blank\">Link</a>", $str);
    $str=eregi_replace("(^| |>)(http://www([.]?[a-zA-Z0-9_/-?])[^<]*)", "\\1<a href=\"\\2\" target=\"_blank\">Link</a>", $str);
    $str=eregi_replace("(^| |>)(http://([.]?[a-zA-Z0-9_/-?])[^<]*)", "\\1<a href=\"\\2\" target=\"_blank\">Link</a>", $str);
    return $str;
}
Avatar billede dj-hupi Nybegynder
19. april 2009 - 15:22 #5
Svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester