[PHP] regexp links uit text filteren

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • RSD
  • Registratie: Maart 2001
  • Laatst online: 08-02-2017
Ik wil vanuit een html pagina alle links in een array zetten. Echter moet de link en de titel in een array komen, dus het gedeelte tussen <a href="dit">en dat</a>. Zelf dacht ik aan zoiets:
PHP:
1
2
3
4
5
<?
$data = "de string <A HREF=\"http://www.ilse.nl/\" target=_new>ilse</A> code.";
preg_match_all('/<a .*?href=["\']?(.*?)["\']?[ >](.*?)<\/a>/is', $data, $matches); 
print_r($matches);
?>


Echter werkt deze niet helemaal goed. Wat doe ik fout, want volgens mij zou deze gewoon moeten werken. Hij geef tverder geen errors, maar de resultaten zijn niet goed.

Acties:
  • 0 Henk 'm!

  • Zoefff
  • Registratie: September 2001
  • Laatst online: 12:37

Zoefff

❤ 

<a[\s]+[^>]*?href[\s]?=[\s\"\']+(.*?)[\"\']+.*?>([^<]+|.*?)?<\/a>

Bijvoorbeeld?

Voor dit soort "standaard" regexp's kijk ik altijd op www.regexlib.com, erg handig :)

http://www.regexlib.com/Search.aspx?k=links


FotoblogWerkaandemuur.nlMoestuincursus.nlTwitter


Acties:
  • 0 Henk 'm!

  • RSD
  • Registratie: Maart 2001
  • Laatst online: 08-02-2017
Maar deze pakt urls zonder \" niet..

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Dan zet je een ? achter die quote? :)
<a[\s]+[^>]*?href[\s]?=[\s\"\']?(.*?)[\"\']?.*?>([^<]+|.*?)?<\/a>

[ Voor 5% gewijzigd door NMe op 03-07-2005 16:17 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.