Avatar billede lone_a_p Praktikant
30. april 2005 - 03:20 Der er 9 kommentarer og
1 løsning

Forum med [mail] [url] osv

Hvordan laver man nemmest en funktion, der laver f.eks.

... på webadresse [url]www. eksperten .dk[url]

om til et alm <a href... osv?

og også [mail], [b], [i]

Kender I nogle gode funktioner?

Mvh Lone
Avatar billede al_dair Nybegynder
30. april 2005 - 07:03 #1
URL:
function strToLink($str) {
  return eregi_replace("((f|ht)tps?://)([a-z0-9@:%_.~#\-\?&-]+)((\=|[a-z0-9]|\?|&|\/|\.|-|:|æ|ø|å)+){0,}", "<a href=\"\\0\">\\0</a>", $str);
}

strToLink(www. eksperten .dk)


Mht. mail, ville du lave $noget om til link med <a href="mailto:$noget">$noget</a>
??
Avatar billede nielle Nybegynder
30. april 2005 - 07:25 #2
eregi_replace
(
'[url]([\w\d\.\/:]+)[url]',
'<a href=\"\\1\">\\1</a>',
$str
);
Avatar billede nielle Nybegynder
30. april 2005 - 07:26 #3
...men det var nu bedre hvis du kunne bruge formen "[url]www. eksperten .dk[/url]" i stedet for "[url]www. eksperten. dk[url]" da man så entydigt kan se hvor starten og slutningen er.
Avatar billede nielle Nybegynder
02. maj 2005 - 21:32 #4
$str = preg_replace(
"/\[url\]([\w\.:\/]+)\[url\]/"
"<a href=\"\$1\">\$1</a>",
$str
);
Avatar billede nielle Nybegynder
10. maj 2005 - 22:40 #5
Hvad med lidt respons her?
Avatar billede lone_a_p Praktikant
10. maj 2005 - 22:45 #6
Hej nielle,

Det må du undskylde, jeg har ikke lige fået svaret - jeg har gjort følgende:
$tekst = eregi_replace("\[i\]([^[]+)\[\/i\]", "<i>\\1</i>", $tekst);

Det virker :)

Jeg kunne ikke rigtig få ovenstående svar til at virke, som jeg ville, men jeg plejer at uddele point alligevel, så smid blot et svar :)

Mvh Lone
Avatar billede nielle Nybegynder
10. maj 2005 - 22:53 #7
Hvis du ikke har fået løst dit problem så syens jeg da at vi skulle arbejde lidt på det i stedet? Fungere din eregi_replace ikke eller hvad?
Avatar billede lone_a_p Praktikant
10. maj 2005 - 23:14 #8
jo jo, det jeg har skrevet sidst fungerer lige som det skal :)

der var noget bøvl med det andet med at jeg ikke kunne have flere fedskrifter - altså normal, fed, normal, fed skrift - så gjorde den ikke det rigtige. Jeg kan ikke helt huske det, fik det fikset med det samme, men glemmer ofte at svare tilbage her på eksperten, fordi man selv kommer til at sidde og lege med det :)

men så er det godt med en reminder ;)

tak for hjælpen
Avatar billede nielle Nybegynder
11. maj 2005 - 07:08 #9
Jamen så lægger jeg da gerne et svar. :^)

Nu er jeg ikke selv en haj til PHP, men jeg har da arbejdet en del med regulære udtryk i en masse sammenhænge, og derfor turde jeg godt give et bud. Jeg har ladet mig fortælle at man bør bruge preg_replace i stedet for eregi_replace. Der skulle være flere grunde til dette, bl.a. performance. Det der mest overbeviser mig om at det forholder sig sådan er, at eregi_replace øjensynligt ikke forstår konstruktioner som \w og \d. Det gør preg_replace til gengæld, og i betragtning hvor effektive disse er, og hvor almindelige de er i andre systemer som bruger RegExp, så er dette alene en stærk begrundelse for at skifte til den sidste. I min bog altså.
Avatar billede lone_a_p Praktikant
11. maj 2005 - 10:09 #10
Ok, jeg skal have lært de regulære udtryk på et tidspunkt - aner ikke rigtig noget om dem, men kan bare fornemme, at de ikke rigtig kan undværes i længden ;)
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