je comprend rien à set_time_limit ...

WRInaute accro
En tout cas, ca a pas l'air de faire ce que je veux ...

mon probleme : un bout de code php :

<?

bal bal bla 1

$content=file_get_contents($chemin);

bal bal bla 2


?>

Et la je voudrais dire :

si pas de reponse du file get apres n secondes, on renonce et on continue à executer le code blabla 2 ...

Comment qu'on fait ca en php ?
 
WRInaute accro
$content=file_get_contents($chemin);
if ($content != false)
OK
else
C'est CACA


Aa mais t'as du oublier de spécifier un time out j'imagine ? :p
 
WRInaute accro
ou if ($content !== false)

aussi :mrgreen:

merci yoyo ca je sais . mon probleme est de ne lui affecter que n secondes et je trouve pas comment faire. Detecter false apres 30s ne m'interesse pas ...
 
WRInaute accro
Heu sauf que ca marche pas ...

J'ai droit a un jolie message :

Warning: file_get_contents() expects at most 2 parameters, 3 given in /vhosts/a/z/azsante/www/xxx_gfc_timeout.php on line 12

et le content retourne rien ...

Voila mon code

Code:
$contexte_gfc = stream_context_create(array(
    'http' => array(
        'timeout' => 3
        )
    )
);

// $content_gfc=file_get_contents($url_gfc);

$content_gfc=file_get_contents($url_gfc, false, $contexte_gfc);

j'ai aussi essayé : $content_gfc=file_get_contents($url_gfc, 0, $contexte_gfc);

Dès que je remets la ligne qui est en commentaire au dessus ca remarche bien sur ...
 
WRInaute accro
Moi ce code-ci est en production sur mon site et fonctionne. Tu dois avoir une mauvaise version de php alors ?

Code:
function getContext() {
    
    $aContext = array(            
			'http' => array(
                  		'timeout' => 5
            ),
    );

    return stream_context_create($aContext);
}
echo file_get_contents('http://www....',false,getContext());

Et aucun souci. Test pour voir?
 
WRInaute accro
oui je vais le tester sous forme de fonction ... si ca marche je demanderai pas mon reste et je prendrai la chose ainsi :mrgreen:
 
WRInaute accro
Même punition avec ta version ... c'est donc probablement la version de php qui est pas au top sur mon mutu. Ca qui fait pas mon affaire :oops:
 
WRInaute accro
Si t'es en mutu chez ovh t'as une ligne a mettre dans ton htaccess pour passer en php5 pour info
 
WRInaute accro
YoyoS a dit:
Si t'es en mutu chez ovh t'as une ligne a mettre dans ton htaccess pour passer en php5 pour info
non c'est mutu chez netavous.

mais bon avant de passer php5 je vais avoir du code à vérifier ... style des <?=$truc?> en pagaille (plus accepté en php5 je crois) :roll:

ou creuser la solution proposée par medium ...
 
WRInaute accro
bproductiv a dit:
entre la version a yoyo et la tienne il manque des virgules et des ; est-ce que ce serait pas ça ?
nan nan, j'ai fait un copier coller de son code tel quel ... et j'ai le même message qui d'ailleurs n'ets pas une alerte sur la syntaxe mais bien un pb de compréhension de la commande par PHP.
 
WRInaute accro
Zecat a dit:
mais bon avant de passer php5 je vais avoir du code à vérifier ... style des <?=$truc?> en pagaille (plus accepté en php5 je crois) :roll:
toutafé :wink:
le problème de set_time_limit c'est qu'il va clôturer le script une fois le timeout passé et non effectuer le test mais le lien donné par medium69 permet, semble-t-il de passer outre ce problème
 
WRInaute accro
oui mais bon ca me parait un peu compliqué juste pour modérer les ambition consommatrices d'un file get contents ... :roll:
 
Discussions similaires
Haut