[PHP] Problema ciclo while

MattiaBL

Nuovo Utente
6 Giu 2018
1
0
1
PHP:
<?php
ini_set('memory_limit', -1);
ini_set('max_execution_time', 0);
include 'class.php';
header("Content-type:application/json");
$API = new API("");
$start = "0";
$stop = "1";
$done = true;
$res = $API->portscan("208.80.152.201", 0, 1);
$count = count($res);
while($done){
while($count == $stop){
$res = $API->portscan("208.80.152.201", 0, 1);
for($n = $start; $n <= $stop; $n++){
    $return = NULL;
    $return .= json_encode(
        array(
         $n => array(
             'status' => $res[$n."_port"],
         )
        )
         );
         echo $return;
        }
        $done = false; 
    }
}
il primo while non si ferma anche se come si vede nel codice metto $done = false; scusate l'identazione
 
Ultima modifica di un moderatore:
@MattiaBL

Da regolamento del forum, come tutti noi sei tenuto ad usare il tag
code.gif
quando posti del codice, oppure la funzione codice dalla barra degli strumenti
box inserisci 2.png.JPG

Inoltre ti prego di leggere attentamente il regolamento generale del forum e quello di sezione dove posti
Grazie
Per questa volta te lo sistemo io ma mi raccomando per il futuro
 
ciao
non mi sembra che non sia il primo, ma il secondo
ora mettiamo che all'inizio tu abbia
$count=100
$stop=100
ora all'interno del secondo while non vedo nulla che modifichi il valore o di $coun o di $stop
while($count == $stop){.....}
per cui i loro valori rimangono sempre 100 ed il ciclo continua all'infinito
 
Rendere il codice più leggibile e magari spezzare a servizi potrebbe facilitare il lavoro.

Potresti facilmente aggirare l'ostacolo in questo modo:
PHP:
while($done && $count == $stop)

N.B. Su alcune versione di php devi scrivere così:
PHP:
while($done && ($count == $stop))

Se una delle due condizioni non è vera esci fuori dal ciclo. Nel tuo "done" farebbe uscire dal ciclo!
 

Discussioni simili