Avatar billede martin Nybegynder
17. maj 2001 - 12:03 Der er 3 kommentarer og
1 løsning

Find links, gem i array

Hej,

Jeg har koden:
eregi(\"href=\\\"([^\\\"]*)\\\"\", $html, $link);

Men hvis der er flere links i HTML - så kan jeg kun finde det ene link, via $link[1] - men hvordan får jeg alle links ud af teksten?
Avatar billede morw Nybegynder
17. maj 2001 - 12:21 #1
Jeg ville bruge: preg_match_all i stedet for eregi.

http://www.php.net/manual/en/function.preg-match-all.php
Avatar billede morw Nybegynder
17. maj 2001 - 12:30 #2
preg_match_all(\"|<a\\s+href.*?>(.*)?</a>|isx\", $html, $links);

Tror desuden dette udtryk er bedre.
Avatar billede morw Nybegynder
17. maj 2001 - 12:33 #3
Det var vist til teksten. Paster lige hele koden:

preg_match_all(\"\'\\s+href\\s*=\\s*([\\\"\\\'])?    (?(1) (.*?)\\\\1 | ([^\\s\\>]+))
\'isx\",$document,$links);

This will match the link part of a href, if the href is between \" or \' then
it will match everything between the quotes. If there are no quotes, then
it will match everything up until the next space or > symbol.

Some links may be relative though so may need expanding out ...

As for the text, something like
preg_match_all(\"|<a\\s+href.*?>(.*)?</a>|isx\", $document, $links);
Avatar billede martin Nybegynder
17. maj 2001 - 12:33 #4
Thankz - så blev jeg det klogerer :o)
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
Kurser inden for grundlæggende programmering

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