2010-10-25 9 views
0

J'essaie d'obtenir des informations d'un site en les analysant par PHP & Curl. Mais parfois la page en cours ne termine pas le chargement, donc le script s'exécute sans que rien ne se passe. Il est un script simple comme ça ...Chargement d'une page qui se bloque parfois via PHP (Curl)

... 

curl_setopt($curl, CURLOPT_URL, $url); 

$page = curl_exec($curl); 

... 

est-il un moyen de simplement une nouvelle tentative le chargement de la même page si la page ne se termine pas après le chargement (par exemple) 60 secondes, sans interrompre le script complet ?

Ce serait génial si quelqu'un pouvait m'aider avec un moyen de réaliser cette tâche.

Répondre

2

Vous pouvez utiliser CURLOPT_TIMEOUT, soit le nombre maximal de secondes pendant lesquelles les fonctions cURL peuvent être exécutées.

curl_setopt($ch, CURLOPT_TIMEOUT, timeout_in_seconds); 
+0

merci pour l'info. avez-vous une idée de comment savoir s'il y a eu un temps mort et répéter le processus? –

+1

Je pense que vous pouvez faire une boucle sur votre 'curl_exec' jusqu'à ce que la valeur de retour soit vraie. * Non testé cependant * –

0

Quelque chose de simple serait ..

$bol=true; 
while($bol) 
{ 
$page = curl_exec($curl); 
if($page=="")//Or whatever curl_exec returns on timeout 
$bol=true; 
} 
Questions connexes