Mi correggo, a volte produce l'errore..altre no.
Il numero delle volte che lo produce, però, è maggiore rispetto alle volte che funziona correttamente.
Fondamentalmente sono riuscito ad individuare che il problema si nasconde tra queste righe, e l'errore si presenta in questo ciclo:
Codice PHP:
foreach ($arr as $i => $value) {
$out = fopen($file, 'wb');
$ch = curl_init();
$pic = 'http://xxx.php?string='.$value.'&font='.$font.'&red='.$red.'&grn='.$grn.'&blu='.$blu;
curl_setopt($ch, CURLOPT_URL, $pic);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_FILE, $out);
curl_exec($ch);
curl_close($ch);
fclose($out);
$args = array(
'message' => 'xxx',
);
$args[basename($file)] = '@' . realpath($file);
$ch = curl_init();
$url = 'https://xxx?access_token='.$token;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $args);
$res = curl_exec($ch);
curl_close($ch);
$fval = explode('{"id":',$res);
$obje = explode('}', $fval[1]);
$ch = curl_init();
$urlx = 'https://xxx/'.$obje[0].'?access_token='.$token;
curl_setopt($ch, CURLOPT_URL, $urlx);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$xdata = curl_exec($ch);
curl_close($ch);
$plink = json_decode($xdata,true);
$pieces = explode("id=", $plink['link']);
settype($pieces[1], "integer");
$pid = $pieces[2]."_".$pieces[1];
$ch = curl_init();
$son = 'https://xxx?pid='.$pid.'&tag_uid='.$uid.'&x=3&y=3&access_token='.$token;
curl_setopt($ch, CURLOPT_URL, $son);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$xdd = curl_exec($ch);
curl_close($ch);
}
La prima connessione fatta dal ciclo è ad una pagina presente sempre nel mio spazio, le altre 3 sono tutte connessioni esterne.
E' possibile che data la quantità di richieste fatte in poco tempo, il server di av si rifiuti di eseguirle?
Oppure è un problema causato da una delle connessioni esterne?
Ho notato anche che il ciclo viene eseguito correttamente 4 volte, la quinta (e ultima) si interrompe prima dell'ultima (o a volte penultima) connessione.
Se si potesse sapere il contenuto dei log sarebbe tutto più semplice, ma anche se riuscite a trovare un qualche errore nello script sarei contento ugualmente :)
Grazie