Extraire des infos depuis une source http

Mammouth du PHP | 768 Messages

15 févr. 2006, 16:06

Bonjour,

Je souhaite extraire une donnée d'un site interne. Pour cela j'utilise stream_get_contents() pour mettre le flux en mémoire:
<?php
$url = 'http://www.mon_exemple.fr';
$stream = fopen($url, 'r') or die("ERREUR D'OUVERTURE");
$source = stream_get_contents($stream);
$masque = "<p style=\"padding-top: 5px;\">(.*)</p></td>";
ereg($masque,$source,$out) or die("ERREUR");
echo $out[1]; // J'OBTIENS L'INFO SOUHAITEE.
?>
Cela fonctionne mais je me rend compte que le temps de réponse n'est pas génial (un peu plus d'1 seconde).

Comment obtenir une information plus rapidement ?
Merci pour votre aide
M A R I O
Si une patte de lapin porte bonheur, qu'a-t-il bien pu arriver au lapin ?

ViPHP
fab
ViPHP | 2657 Messages

15 févr. 2006, 16:51

la fonction stream_get_contents permet de mettre en parametre une taille maximum a recuper déjà ça peut etre pas mal si tu connais a peu pres la taille de l'information que tu souhaites récuperer.
Sinon connais tu bien cette fonction ? moi pour ce genre de cas j'utilise file_get_contents.
Apres niveau performance tu peux voir du de preg a la place de ereg : les PREG sont des expressions plus rapides que les POSIX
( a savoir aussi que les POSIX vont être supprimées dans php6.

Dernier recourt un système de cache sur cette information sauf que dans ce cas là tu auras quand meme besoin de la récuperer une fois de temps en temps.
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }