2011-07-18 29 views
21

Tengo un script php que utilizo para la creación de la lista de mis productos. Estoy en hosting compartido, así que no puedo hacer muchas consultas, de lo contrario me aparece una página en blanco.PHP, espere 5 segundos antes de ejecutar una acción

Éste es cómo usar mi script ahora:

script.php?start=0&end=500&indexOfFile=0 ->> make a product0.txt file with first 500 products 

script.php?start=501&end=1000&indexOfFile=1 ->> product1.txt file with another 500 products 

script.php?start=1001&end=1500&indexOfFile=2 ->> product2.txt file with last 500 products 

¿Cómo puedo modificar la secuencia de comandos por lo que hará que todos estos archivos de forma automática, de modo que yo no tengo que cambiar cada vez que el enlace ¿a mano?

me gustaría hacer clic en un botón que va a hacer esto:

crea el archivo product0.txt con los primeros 500 productos

de espera de 5 segundos

crea el archivo product1.txt con con otros 500 productos

esperar 5 segundos

crear el archivo product2.txt con los últimos 500 productos

+6

En menor que el tiempo que le llevó a escribir esto, se podía haber copiado el contenido del script.php , lo pegué dos veces más, codifiqué los valores '$ start' y' $ end' en cada sección, y agregué un 'sleep (5)' entre cada copia/pegado. Ese es todo el guion. –

+0

lol @dan :) ... – Brian

+0

La mejor manera, creo, es recuperar todos los productos que necesita en una matriz global y luego cortarlos, escribir datos en archivos separados y listo. Esto solo necesita una consulta sql – krifur

Respuesta

36

uso:

sleep(NUMBER_OF_SECONDS); 
17

antes de iniciar sus acciones, utilice

sleep(5); 
4

o:

usleep(NUMBER_OF_MICRO_SECONDS); 
0

estoy en alojamiento compartido, por lo que No puedo hacer muchas consultas, de lo contrario, obtengo una página en blanco.

Eso suena muy peculiar. Tengo el paquete de alojamiento PHP más barato que pude encontrar para mi último proyecto, y no se comporta así. No pagaría por un servicio que sí lo hizo. De hecho, estoy desconcertado incluso saber cómo podría configurar un servidor para replicar este comportamiento.

Independientemente de por qué se comporta de esta manera, la adición de un sueño en medio de la secuencia de comandos no puede resolver el problema.

Dado que, presumiblemente, a controlar su catálogo de productos, nuevos productos deben ser relativamente poco frecuente (O está tratando de obtener informes de la bolsa?). Si controla cuándo cambia los datos, ¿por qué ejecutar los scripts automáticamente? ¿O quiere decir que ya tiene estas URL y obtiene los archivos esperados cuando los ejecuta de uno en uno?

+1

puede estar obteniendo resultados en blanco porque no se está liberando resultados después de ejecutar cada consulta –

-2
<?php 
    foreach($i = 0; i < 500; $i++){ 
     your_code; 
     delay(3); // 3 seconds 
    } 
?> 
+2

foreach es innecesario, y la demora no es una función en PHP que yo sepa. – MSC

0

En Jan2018 la única solución funcionó para mí:?

<?php 

if (ob_get_level() == 0) ob_start(); 
for ($i = 0; $i<10; $i++){ 

    echo "<br> Line to show."; 
    echo str_pad('',4096)."\n";  

    ob_flush(); 
    flush(); 
    sleep(2); 
} 

echo "Done."; 

ob_end_flush(); 

>

Cuestiones relacionadas