Avatar billede webint Nybegynder
14. september 2006 - 18:27 Der er 7 kommentarer og
1 løsning

Finde det mellem a - href

Hej Eksperter.

Hvordan finder jeg det mellem href="", i string

$string = "bla bla bla <a href=\"www.link.php\">et link</a>";

Så skal den finde www.link.php - hvordan?

På forhånd tak
Avatar billede nielle Nybegynder
14. september 2006 - 19:07 #1
F.eks. sådan:

$string = "bla bla bla <a href=\"www.link.php\">et link</a>";

preg_match("#<a href=\"(.*?)\">#i", $string, $matches);
echo $matches[1];
Avatar billede coderdk Praktikant
14. september 2006 - 19:39 #2
Hvis det er flere, så preg_match_all :)
Avatar billede elskermad.dk Nybegynder
14. september 2006 - 20:54 #3
nielle:

hvad gør havelågen? er det ligesom /^ $/ i ereg?

hvorfor *? - burde * ikke være 0 eller flere så ? er overflødig?
Avatar billede nielle Nybegynder
14. september 2006 - 21:06 #4
#-tegnet har akkurat samme funktion som /-tegnet i:

preg_match("/<a href=\"(.*?)\">/i", $string, $matches);

Jeg foretrækker bare #, idet brugen af denne betyder at man ikke behøver at escape eventuelle /-tegn i mønsteret. Dette er praktisk hvis der er f.eks. er tale om html-kode hvor /-tegnet forekommer alle mulige steder.

?-tegnet gør at .* ikke er "grådig". Uden dette ville .* forsøge at matche så meget som overhovedet er muligt.

Man kan se forskellen mellem de to (med og uden ?) hvis man forsøger sig med en $string hvor der er flere href's:

$string = "bla bla bla <a href=\"www.link.php\">et link</a> cccp <a href=\"www.link.php\">endnu et link</a>";


Uden ?-tegn matches:

www.link.php\">et link</a> cccp <a href=\"www.link.php

Med ?-tegn matches:

www.link.php
Avatar billede elskermad.dk Nybegynder
14. september 2006 - 21:25 #5
okay mange tak for inputtet.. det lærte jeg da en hel del af! :)
Avatar billede nielle Nybegynder
20. september 2006 - 21:32 #6
webint> Hvad med noget respons?
Avatar billede webint Nybegynder
16. januar 2007 - 22:45 #7
så smid et svar
Avatar billede nielle Nybegynder
16. januar 2007 - 22:58 #8
Jeg smider normalt først et svar når spørgeren fortæller at mit input faktisk løste hans problem. Det gætter jeg på at det har gjort?

... og et 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