performance file() versus file_get_contents()

VaN
Mammouth du PHP | 1107 Messages

25 mars 2011, 13:20

Bonjour,

je souhaite aller récupérer un bout de texte sur une page HTML.

Disons que le texte que je souhaite récupérer se trouve un div :
<div class="quote_values "></div>
Quelle serait la méthode la plus rapide pour récupérer cela ?

Commencer par récupérer le fichier html via file_get_contents() puis strpo() son contenu, ou récupérer le contenu via file(), boucler sur chaque ligne et faire un strpos() sur chaque ligne ?

Ou une autre méthode ?

ViPHP
xTG
ViPHP | 7331 Messages

25 mars 2011, 13:33

Tu as à moitié répondu à ta propre question.
Si on ne prend pas en compte la durée d'exécution des fonctions (bien qu'à mon avis il doit pas y avoir des secondes d'écart...) tu fais plus de traitement en utilisant file() puisque tu parcours chaque ligne avant de rechercher.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

25 mars 2011, 13:41

Yop,

File_get_contents + DOM / simplexml (si xhtml) serais plus indiqué ;)


@+
Il en faut peu pour être heureux ......

Mammouth du PHP | 672 Messages

25 mars 2011, 14:01

File_get_contents + DOM / simplexml (si xhtml) serais plus indiqué ;)
Ce serait plus propre, oui.

Mais au niveau rapidité de traitement, entre du XML et un bête preg_...(), j'ai des doutes.

ViPHP
ViPHP | 5462 Messages

25 mars 2011, 14:33

pas besoin non plus de file_get_contents, SimpleXML et DOMDocument lise direct les fichiers, après c'est pas tellement un question de rapidité oui ca sera moins rapide qu'un preg mais le plus lent dans l'histoire c'est le temps de récupéré le fichier distant. Et plus propre + simple + fait pour