Sujet : [PHP] Peut-on faire un timeout lors d'un include( 'http://...' ) ?
Salut la dedans,
J'ai une fonction qui me permet d'aller récupérer les derniers messages du forum pour pouvoir les afficher dans une page web (càd ce que vous pouvez trouver sur la page d'accueil de JeBulle.Net).
Voici le code qui me permet de récuperer les messages :
ob_start();
@include( 'http://forums.jebulle.net/extern.php?action=active&show=5&fid=14,15&length=100' );
$sMessages = ob_get_clean();
Mon problème est le suivant : l'inclusion de cette page distante peut prendre plus ou moins de temps selon que le serveur répond plus ou moins vite à la requête http. L'ennui c'est que ce temps d'attente du résultat est répercuté sur le chargement de la page qui va recevoir les données. Et ça m'embête .
Je cherche donc à savoir si l'est possible de faire la même opération mais avec un timeout, de sorte que, par exemple, si le serveur ne répond pas dans la seconde, on passe à la suite du traitement en disant que les données n'ont pu être lues car le serveur n'a pas répondu assez vite. De cette façon, on évite d'avoir un temps de chargement de page trop long.
Une solution serait d'instancier un processus parallèle au processus courant, mais il faudrait alors faire une synchro à la fin et récupérer le résultat du processus créé. Et alors en PHP, je n'ai jamais fait ça...et je ne sais pas vraiment si cela est possible. Y'a bien une gestion des processus, avec du fork et tout le tralala mais cela ne fonctionne que sous Linux (normal...).
Des idées à me proposer ?
"Keyboard not detected, press a key to continue..."