2010-09-17 7 views

Répondre

2
preg_match_all('#<a\s+href\s*=\s*"([^"]+)"[^>]*>([^<]+)</a>#i', $subject, $matches, PREG_SET_ORDER); 

foreach ($matches as $match) { 
    echo $match[0]; // <a ... href="url" ...>text</a> 
    echo $match[1]; // url 
    echo $match[2]; // text 
} 

Voilà comment je le ferais avec regex. Il peut y avoir des moyens plus efficaces mais cela devrait être le plus simple.

EDIT: Remarqué que vous vouliez faire correspondre toutes les URL, donc changé pour preg_match_all

preg_match_all

+0

En fait, je suis à la recherche de l'instance d'un mot clé spécifique. 'pierre angulaire' - peut-être le moyen le plus simple de le faire serait de trier toutes les URL, et ensuite essayer de trouver ceux qui contiennent la pierre angulaire dans le cadre du texte d'ancrage? –

+0

dans ce cas, le motif devient "# ] *> ([^ <] * pierre angulaire [^ <]*) #i ' – AlexJF

Questions connexes