Avatar billede amews_aj Nybegynder
21. december 2004 - 13:30 Der er 12 kommentarer og
1 løsning

Selecte mellem tegn?

Jeg vil gerne have min php til at læse en tekst, og de steder hvor der står [a]......[/a] skal den så lave om til links. Har dog klaret noget selv

$tekstn = str_replace("[a]","<a href=\"", $tekstn);
$tekstn = str_replace("[/a]","\" target=\"_blank\"></a>", $tekstn);

Det eneste jeg mangler er det der skal stå når man skal klikke på linket.

hvordan kan jeg "selecte" det?

Den skal altså finde dn tekst der står mellem [a] og [/a]
[a]http://www.eksperten.dk[/a] vile så blive
http://www.eksperten.dk

Hvordan kan jeg få den til det?

Håber i forstår ellers så spørg løs :D
Avatar billede sw_red_6 Nybegynder
21. december 2004 - 13:40 #1
jeg har noget kode der gør det samme liggende derhjemme så hvis du kan vente til omkring 18.00 kan jeg godt smide noget kode til dig
Avatar billede amews_aj Nybegynder
21. december 2004 - 13:41 #2
jo da, det kan jeg da godt, men stadigvæk, hvis der er andre der kan, så bare kom med det :D
Avatar billede detox Nybegynder
21. december 2004 - 13:45 #3
$tekstn = preg_replace("/\[a\](.*)\[\/a\]/", '<a href="$1" target="_blank">$1</a>' ,$tekstn);
Avatar billede amews_aj Nybegynder
21. december 2004 - 13:56 #4
jo tak det virker perfekt :D

så bare en lille ting

Jeg hader de der preg_...  fatter dem ikke,
kunne du ikke prøve at forklare hvad alle de tegn betyder?
/\[a\](.*)\[\/a\]/
og hvordan den splitter $1 ?
Avatar billede amews_aj Nybegynder
21. december 2004 - 14:03 #5
øhh lige en ting

kan du gøre sådan at den læser om der står http:// først i linket, og hvis ikke skal den selv skrive det.
Avatar billede detox Nybegynder
21. december 2004 - 14:04 #6
Tjoh, i virkeligheden står der: [a](.*)[/a] og den fanger alt hvad der står i parentesen (det er så repræsenteret af: $1). Den første og sidste / er til for at omkranse udtrykket. De andre \ er der for at escape tegn som: [, ] og /.
Avatar billede detox Nybegynder
21. december 2004 - 14:14 #7
Prøv:

$tekstn = preg_replace("/\[a\]http:\/\/?(.*)\[\/a\]/", '<a href="http://$1" target="_blank">$1</a>' ,$tekstn);
Avatar billede detox Nybegynder
21. december 2004 - 14:16 #8
Næ, det virker vidst ikke helt. Måske:

$tekstn = preg_replace("/\[a\](http:\/\/)?(.*)\[\/a\]/", '<a href="http://$2" target="_blank">$2</a>' ,$tekstn);
Avatar billede amews_aj Nybegynder
21. december 2004 - 14:18 #9
ja fint nok, men prøv at se hvad der sker hvis man skriver flere efter hinanden

http://www.pc-help.dk/sforum.php?id=2&forum=8

den nederste!
Avatar billede amews_aj Nybegynder
21. december 2004 - 14:25 #10
Ikke helt godt, det er som om den tager den sidste af dem

hvis man skriver

[a]www.pc-help.dk[/a]  [a]www.pc-help.dk[/a]

så bliver linket www.pc-help.dk[/a]  [a]www.pc-help.dk
Avatar billede detox Nybegynder
21. december 2004 - 14:40 #11
Nå ja, prøv:

$tekstn = preg_replace("/\[a\](http:\/\/)?([^\[]*)\[\/a\]/", '<a href="http://$2" target="_blank">$2</a>' ,$tekstn);
Avatar billede amews_aj Nybegynder
21. december 2004 - 14:44 #12
Det er bare perfekt

mange tak for hjælpen, her er dine point :D

Og glædelig jul og godt nytår :D
Avatar billede detox Nybegynder
21. december 2004 - 14:58 #13
Velbekommen og tak ilm.
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