Bonjour,
Je souhaite simplement récupérer le contenu d'une page distante via file_get_content() mais en stoppant le processus si le chargement prend trop de temps.
Peu m'importe pour l'instant si c'est le serveur distant qui rame ou le fichier récupéré qui est trop lourd.
Pour ce faire j'ai d'abord testé l'indication d'un timeout via un "context" :
1 2
| $contexte=stream_context_create(array("http"=>array("method"=>"GET","timeout"=>$duree_max)));
$contenu=file_get_contents($this->url,0,$contexte); |
Puis la variable default_socket_timeout :
ini_set("default_socket_timeout","$duree_max");
Dans un cas comme dans l'autre et même en utilisant les 2 solutions en même temps, je reste sans succès.
Par exemple en donnant la valeur "1.0" à ma variable $duree_max et testant l'url d'un gros fichier le script s'éternise alors qu'il devrait s'arrêter au bout d'une seconde.
Pourtant en lançant phpinfo() default_socket_timeout est bien passé à 1 (60 par défaut).
Une idée d'où peut venir le problème ?
Partager