Avatar billede mikl-dk Nybegynder
05. juni 2002 - 18:37 Der er 2 kommentarer og
1 løsning

eregi_replace() is driving me nuts!!!!

Hej Eksperter!

Jeg sidder og laver et nyhedssystem. Til det er der en funktion, som gør, at når man fx skriver "www.hej.dk" bliver det lavet om til et link (først når det skal vises, ikke når man indsætter det i databasen).

Der er imidlertidig det problem, at hvis jeg vil indsætte et billede (det gør jeg med <img src....), så virker det ikke, da funktionen går ind og laver det til et link:

<img src="<A HREF="URL" TARGET="_blank">ULR</A>">

For at lave om på det, har jeg (eller rettere, er jeg ved) lavet en funktion, der skal gøre følgende (men den virker bare ikke :( ):

Følgende (stjernene markere, at her må ALT stå - altså inden for "link-reglerne"):
<img src=\"<A HREF=\"    ****    \" TARGET=\"_blank\">    ***    </A>\">

Det skal erstattes med:
<img src=\"    ****    \">

Men det virker som sagt ikke...

Her er funktionen:

    function link2img($str) {
        $str = eregi_replace("<img src=\"<A HREF=\"([[:space:]a-z0-9{()\"'\[~#%@\&:=?\._-])(www.[a-z0-9~#%@\&:=?\/\._-]+[a-z0-9~#%@\&=?\/_-]+)\" TARGET=\"_blank\">([[:space:]a-z0-9{()\"'\[~#%@\&:=?\._-])(www.[a-z0-9~#%@\&:=?\/\._-]+[a-z0-9~#%@\&=?\/_-]+)</A>\">", "<img src=\"\1\">", $str);
        return $str;
    }

/mikl.dk
Avatar billede bjarte Nybegynder
05. juni 2002 - 18:40 #1
hvorfor ikke bare gjøre det i to ganger.. som dette:
function html_codes($tekst) {
$tekst = preg_replace( "#\[img\](.+?)\[/img\]#is", "<img src='$1' align='right'>", $tekst );
$tekst = preg_replace("#\[url\s*=\s*(\S+?)\s*\](.*?)\[\/url\]#is", "<a href='$1'>$2</a>", $tekst);
$tekst = preg_replace("#\[bilde\s*=\s*(\S+?)\s*\](.*?)\[\/bilde\]#is", "<img src='$1' align='$2'>", $tekst);

noen eksempler.. man kan da skrive f.eks bildet.gif for eksempel....
Avatar billede funti Nybegynder
05. juni 2002 - 20:22 #2
har fundet det her på en eller anden side... og har sat target=_blank på...
virker skide godt

$str = preg_replace ("/(ftp|http|https|telnet|news|nntp|file|irc):\/\/([a-z0-9~#%@&:;=!',_æøå\(\)\?\/\.\-\+\[\]\|\*\$\^\{\}]+)/i", "<a href=\"\\1://\\2\"".$ins_str." target=\"_blank\">\\1://\\2</a>", $str);
        $str = preg_replace ("/(\s|tp\:|\(\[)(www\.)([a-z0-9~#%@&:;=!',_æøå\(\)\?\/\.\-\+\[\]\|\*\$\^\{\}]+)/i", "\\1<a href=\"http://\\2\\3\" target=\"_blank\"".$ins_str.">\\2\\3</a>", $str);
        $str = preg_replace ("/(\s|tp\:|\(\[)(ftp\.)([a-z0-9~#%@&:;=!',_æøå\(\)\?\/\.\-\+\[\]\|\*\$\^\{\}]+)/i", "\\1<a href=\"ftp://\\2\\3\" target=\"_blank\"".$ins_str.">\\2\\3</a>", $str);
Avatar billede mikl-dk Nybegynder
05. juni 2002 - 23:18 #3
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