2013-03-04 3 views
0

J'essaie d'indexer un site Web et mon preg_match renvoie un tableau vide.Indexation avec preg_match

C'est ce que j'ai jusqu'à présent:

$content = get_content("www.something.com"); 
preg_match_all('#<span class="box_cod">Cod: ([0-9\.]*)</span><span class="box_pret">PRET: (.*)</span>#',$content,$Produs); 

Où get_content est une fonction boucle pour récupérer le site.

Merci!

+2

Il est très difficile d'analyser le langage HTML avec des expressions régulières. Avez-vous envisagé d'utiliser un vrai parseur DOM? –

+0

Excellent ... une autre occasion de parler à quelqu'un de [Tony The Pony] (http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454)! Je ne m'en lasserai jamais. – SDC

Répondre

3

Vous pouvez utiliser PHP Simple HTML DOM Parser pour analyser et obtenir le contenu du site dans une variable.
Par exemple d'abord vous inclure le fichier php ..

// Create DOM from URL or file 
$html = file_get_html('http://www.google.com/'); 

il est facile que l'analyse syntaxique HTML avec des expressions régulières.

+0

Je n'ai jamais utilisé le simple html dom parser avant et je ne le connais pas, c'est pourquoi j'ai essayé d'utiliser des expressions régulières. –

+0

vous pouvez consulter le manuel http://simplehtmldom.sourceforge.net/manual.htm –

+0

Ok mais j'ai besoin de preg_match_all pour l'instant, Si je ne laisse que le premier avec Cod, le code fonctionne parfaitement, si j'ajoute PRET alors ça ne marche pas. –