Vos modèles ont des chances les plus grands problèmes en raison de la nature avide vs paresseux de celui-ci. La modification à ce qui suit devrait résoudre cette question ...
preg_match_all('#<h3.*?><a href="(.*?)".*?</h3>#', $result, $matches);
print_r($matches[1]);
Il y a peut-être quelques rares URL qui pourrait gâcher le modèle, mais les chances sont que vous ne rencontrerez pas un. Je ferai remarquer que ce qui reste a un bon point bien que l'utilisation de l'API soit une meilleure option. En ce qui concerne les personnes qui répondent "Vous ne pouvez pas analyser HTML avec Regex, utilisez un DOM" ... Bien que vous ne puissiez pas créer un analyseur HTML générique (vous devriez utiliser DOM pour cette tâche), vous pouvez faire correspondre modèles dans un ensemble de texte que vous connaissez suit une certaine structure, le fait que la structure est HTML est sans importance. Oui, si Google modifie sa mise en page, il se cassera probablement, mais c'est probablement aussi vrai d'un analyseur DOM. (P.S. Je sais bien que cela va probablement tomber - voté par le sheeple).
Essayez d'obtenir l'URL pour chacun des résultats de la recherche (pas les mots-clés). – Alex
Vous ne pouvez pas vraiment utiliser les expressions régulières pour l'analyse HTML. Utilisez [l'extension DOM] (http://www.php.net/manual/fr/book.dom.php) ou un autre analyseur DOM. –
Pourquoi avez-vous besoin d'extraire les résultats de recherche quand il y a une API Google qui le rend beaucoup plus facile ?! http://code.google.com/apis/ajaxsearch/web.html – stillstanding