Iterazione in PHP

piero60

Utente Attivo
26 Gen 2015
71
2
8
Salve a tutti,
non ho esperienza in PHP ed avrei bisogno di un aiuto:

Dovrei fare in modo che lanciando una pagina PHP questa esegua per N volte sempre lo stesso lavoro,
intervallando l'esecuzione del medesimo per X tempo ed ogni volta visualizzasse sullo schermo l'avvenuta
esecuzione di uno step.
Terminata l'esecuzione per N volte il processo deve arrestarsi.


Start lavoro, in una variabile ho scritto quante volte deve essere eseguito

codice da eseguire

eseguo il codice e stampo su video che l'ho eseguito la prima volta, la seconda, ecc fino ad arrivare ad N

Prima esecuzione terminata, attendo il tempo X e ricomincio d'accapo fino a quando non raggiungo N

E una cosa complicata in PHP, in javascript è fattibile ma in questa applicazione posso utilizzare solamente PHP


Grazie in anticipo.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
il problema non è, da quanto ho capito, fargli ripetere n volte un lavoro con un certo intervallo di tempo.
php lavora lato server per cui alla chiamata della pagina esegue il vavoro, ma non fa vedere i risultati uno alla volta ma tutti assieme quando il server ha finito.
ti faccio un esempio.
se provi lo script sootto
PHP:
<?php
for($k=0;$k<5;$k++){
	$tempo=date('h:i:s');
	echo "operazione $k al tempo $tempo<br>";
	sleep(5);//attesa 5 secondi
}
?>
ti accorgi che non succede (esempio)
visualizza
operazione 0 al tempo 11:54:13
e dopo 5 sec
operazione 1 al tempo 11:54:18
ecc....
ma, dopo 20 secondi tutto assieme
operazione 0 al tempo 11:54:13
operazione 1 al tempo 11:54:18
operazione 2 al tempo 11:54:23
operazione 3 al tempo 11:54:28
operazione 4 al tempo 11:54:33
 

piero60

Utente Attivo
26 Gen 2015
71
2
8
Grazie Borgo Italia,

Una cosa del genere potrebbe funzionare ?

<?php
for($k=0;$k<10;$k++){

$eseguito = $k + 1;

Qui inserisco il codice da eseguire

echo "Eseguito N : $eseguito <br>";

sleep(2);//attesa 2 secondi
}
?>

Il mio codice verrebbe eseguito ogni 2 secondi e per 10 volte ?
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
dipende da cosa intendi per eseguire, se intendi che lo esegua 10 volte si lo esegue, se intendi anche che ti presenti a video la prima esecuzione, aspetti due secondi, ti mostri la seconda, aspetti due secondi.... no
esegue 10 volte l'operazione e dopo 20 secondi ti mostra a video tutte insieme le 10 operazioni
 

piero60

Utente Attivo
26 Gen 2015
71
2
8
Si questo l'ho capito, ciè che non comprendo e se tra una operazione e l'altra passano i 2 secondi.
Ciò che alla fine viene presentato sul video non ha nessuna importanza, la cosa importante è che la porzione di codice venga eseguita ogni 2 o più secondi.
E' questo che non capisco, se l'istruzione sleep() arresta l'esecuzione e poi la riesegue trascorso il tempo programmato.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao si
tra un'operazione e l'altra passano 2 secondi
esempio sleep si usa nel caso dell'invio di molte email contemporaneamente in modo da non intasare il server mettendo in pausa tra un invio e l'altro
 

piero60

Utente Attivo
26 Gen 2015
71
2
8
Ok, grazie, ho fatto alcune prove e sembra funzionare bene.

Buon fine settimana.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
per renderti conto prova a lanciare lo script
PHP:
<?php
$start=time();
for($k=0;$k<5;$k++){
	echo "operazione $k <br>";
}
$fine=time();
$impiego=$fine-$start;
echo "eseguito il primo ciclo in $impiego secondi<br>";
$start=time();
for($k=0;$k<5;$k++){
	echo "operazione $k <br>";
	sleep(2);
}
$fine=time();
$impiego=$fine-$start;
echo "eseguito il seconco ciclo in $impiego secondi<br>";
?>
avrai in output
operazione 0
operazione 1
operazione 2
operazione 3
operazione 4
eseguito il primo ciclo in 0 secondi (preticamente 0, centesimi o millesimi di secondo, ma lo vedi alla fine del secondo)
operazione 0
operazione 1
operazione 2
operazione 3
operazione 4
eseguito il seconco ciclo in 10 secondi

è evidente che poi il tempo impegato e funzione anche di quanto ci impega l'operazione ad eseguirsi
 
Discussioni simili
Autore Titolo Forum Risposte Data
MarcoGrazia Iterazione array PHP 5
P Iterazione Foreach dentro un ciclo for PHP 9
F Cerco Hosting con VECCHIE versioni di php Hosting 0
Cosina Captcha php PHP 1
S passare un valore da un form a un file .php con metodo post PHP 4
N php msyql PHP 6
N php problemi a visualizzare video PHP 3
A menu a tendina php PHP 1
D protezione cartelle: blocco visualizzazione/scaricamento contenuto, ma abilitazione utilizzo dati da parte di file .php presenti sul sito Web Server 1
F Php date_diff PHP 1
K [PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa PHP 2
C Wp-admin a file php WordPress 5
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
csi Inviare file jpg in locale alla stampante con php PHP 0
M Passaggio variabili array php su un tasto jq PHP 3
E Php aggiornamento tabella PHP 9
G phpmailer e php 8.1 con estensione mysqli PHP 6
M Invio dati database via email php PHP 0
K [php] Problema con inner join PHP 4
K [php]form invio dati PHP 0
P Codifica caratteri speciali mysql php PHP 0
K [PHP] Problema con variabili concatenate. PHP 1
E Stampante termica escpos-php PHP 6
JeiMax Modifica codice php personalizzato PHP 2
G Come modificare un pdf in php PHP 1
U Link a doppio file PHP PHP 0
E PHP & jQuery PHP 8
N Passare array da php a javascript PHP 5
F Applicazione PHP/MySQL per prenotazioni: limitare il numero massimo di posti prenotabili PHP 20
L tipo boolean non funzionante su mariadb (mysql). E codice php 7.4. PHP 0
U PHP creare un file excel dopo ricerca nel DB PHP 0
M PHP/MySQL - Estrarre valori min e max di ogni gruppo PHP 5
F Php e fatturazione elettronica PHP 0
P lanciare script asp (o php) da jquery Javascript 1
Couting95 inserire dati da un file di testo in una tabella in php PHP 1
P Data scraping in PHP non funziona PHP 4
C Calcoli matematici in php PHP 5
F Scrivere dei dati in word con php PHP 0
D PHP leggere cartella di Windows PHP 1
I dominio aruba versione php server linux Domini 3
G Colorare menu select attraverso ricerca php PHP 0
L PHP motore di ricerca nel sito PHP 1
S PHP e Mysqli PHP 0
Y Stampare da php su un foglio A6 attraverso una stampante esterna PHP 1
M Visulizzare immagine con php PHP 8
G [PHP] Creare script di prenotazione con controllo disponibilità. PHP 7
G leggere file txt e stampare con php il contenuto a video PHP 7
F Ricreare struttura php+mysql su Xampp Apache 0
Z PHP.INI - STMP per invio email con PHP Server Dedicati e VPS 0
M Array associativi php su 2 campi mysql PHP 10

Discussioni simili