Ce qui se passe est que j'ai un script en php où il fait de nombreuses demandes à un site Web et mon script est sur mon serveur. Cependant, le problème est le suivant:demande a expiré avec php + cURL
<?php
$ch = curl_init();
$contador = 0;
$ran = explode("\n", file_get_contents('nombres.txt'));
$randomElement = $ran[array_rand($ran, 1)];
if ($file = fopen("correos.txt", "r")) {
while(!feof($file)) {
$line = fgets($file);
$var_post_data = 'site_id=1&email='.$line.'&name='.$randomElement.'id=39494393';
curl_setopt($ch, CURLOPT_URL,"site");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$var_post_data); //Post Fields
//curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$headers = [
'Cookie: ws_visit_id=2_170927230320231_5878; has_track_visit=true; _uetsid=_uet0639d46c',
'DNT: 1',
'Connection: keep-alive',
'Accept: application/json, text/javascript, */*; q=0.01',
'Accept-Language: en-US,en;q=0.5',
'Cache-Control: no-cache',
'Content-Type: application/x-www-form-urlencoded; charset=UTF-8',
'Host: site',
'Referer: site',
'User-Agent: ' . $randomElement,
'X-Requested-With: XMLHttpRequest'
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
echo curl_errno($ch);
echo curl_error($ch);
$server_output = curl_exec ($ch);
echo $server_output ;
echo $contador;
$fp = fopen('data.txt', 'a');
fwrite($fp, $server_output);
$stringData = "-------------" . "\n";
fwrite($fp, $stringData);
// sleep for 240 sec
#sleep(240); // sleep for 240 sec
#sleep(240); // sleep for 240 sec
#sleep(240); // sleep for 240 sec
if(curl_errno($ch) == 26) {
sleep(30);
}
else {
echo 'Not errors';
continue;
}
}
fclose($file);
}
curl_close ($ch);
?>
Je précise également que je l'ai déjà configuré le « max_execution_time » fonction sur mon serveur et le mettre à « 0 ». J'apprécierais que vous puissiez m'aider, je veux que le script le fasse, et si le serveur distant donne cette erreur, laissez mon script faire un sleep(). J'ai essayé de toutes les façons et ça ne marche pas pour moi.
Merci!
'$ ligne = fgets (fichier $),' à chaque itération cette variable est écrasée, contenant efficacement que la dernière ligne? Sinon, je ne vois rien d'inhabituel avec votre script qui conduirait à des erreurs de timeout du point de vue de votre client, avez-vous le contrôle du serveur sur lequel vous postez? – Scuzzy
Comment puis-je résoudre ce problème d'écrasement? donc j'essaye de revenir ici ... Et non, je n'ai pas le contrôle du serveur distant – Zenabria
@Scuzzy Et merci pour toi .. – Zenabria