salve.
devo rinominare circa 40000 file su un server che ha impostato come durata massima di vita degli script 30 secondi. lo script php che si occupa di rinominare i file ha bisogno di parecchio tempo, perciò pensavo di frammentare il suo lavoro e di eseguirlo ogni tot secondi.
in pratica lo script php prende tramite get il nome della cartella contenente i file da rinominare. esegue il suo lavoro che impiega pochi secondi. tramita uno script js volevo impostare un timeout di 10 secondi che chiamasse una funzione che lancia lo script php
ho buttato giù il codice ma non funzia:
script php
Codice PHP:
<?php
$cartella=$_GET['id'];
$percorso="./cache/".$cartella;
if (!$directory=opendir($percorso)) die("Errore. Cartella immagini non trovata!");
$cont=0;
while ($files = readdir($directory))
{
/*
ELABORAZIONE......
*/
}
$file=fopen('log.txt','a+');
fwrite($file,"Cartella $cartella elaborata correttamente\n");
fclose($file);
?>
script js
Codice PHP:
<html>
<head>
</head>
<body>
<script type="text/javascript">
a=new Array("LB0010a1","LB0011a1","LB0012a1"........//ce ne sono qualche migliaia);
for (i=0;i<a.length;i++)
{
setTimeout(function () {
elabora(i);
}, 5000);
}
function creaOggettoXMLHttp()
{
if (typeof XMLHttpRequest != "undefined")
{
return new XMLHttpRequest();
}
else
{
var versioni = [ "MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHttp"];
for (var i=0; i<versioni.length; i++)
{
try
{
var oggetto=new ActiveXObject(versioni[i]);
return oggetto;
}
catch(errore)
{
//evito che l'errore blocchi la ricerca dell'oggetto giusto
}
}
}
throw new Error("La libreria MSXML non è installata");
}
function elabora(indice)
{
var xmlhttp=creaOggettoXMLHttp();
xmlhttp.open("post","rinomina.php?id="+a[indice],false);
xmlhttp.send(null);
}
</script>
</body>
</html>
potete darmi una mano?
mille grazie