Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [php cli] far ricominciare uno script

    salve

    č possibile far ricominciare uno script?

    tipo

    Codice PHP:
    <?php
    define
    (STDINfopen('php://stdin''r'));

    function 
    menu(){
        print 
    "1) lol\n";
        print 
    "2) atrlo\n";
        
    $lettera fread(STDIN1);
        return 
    $lettera;
    }

    $opzione menu();

    if (
    $opzione == "1") {
      include(
    'menu/lol.php');
    } elseif (
    $opzione == "2") {
      include(
    'menu/altro.php');
    } else {
      
    //fai ricominciare
      
    include($PHP_SELF);
    }
    ?>

    ma ovviamente, php self non va

  2. #2

    Re: [php cli] far ricominciare uno script

    Direi che č una banalitā:

    Codice PHP:
    <?php
    define
    (STDINfopen('php://stdin''r'));

    function 
    menu(){
        print 
    "1) lol\n";
        print 
    "2) atrlo\n";
        
    $lettera fread(STDIN1);
        return 
    $lettera;
    }

    $opzione="";
    while ((
    $opzione!="1") && ($opzione!="2")):
    $opzione menu();

    if (
    $opzione == "1") {
      include(
    'menu/lol.php');
    } elseif (
    $opzione == "2") {
      include(
    'menu/altro.php');
    }
    endwhile;
    ?>
    Ciao!

    P.s.: sarebbe stato sbagliato usare PHP_SELF anche se non fossi stato nella cli...
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  3. #3
    grazie per la risposta intatno

    se faccio cosė perō premendo un'altro tasto, il menų viene ristampato, si.. ma 3 volte

    ps esiste tipo un clear della console?

  4. #4
    3 volte ? e perchč?

    Semplicemente, le due print non devono essere dentro la funzione che riceve l'input...
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  5. #5

  6. #6
    ma no i print devono stare li, se uno mi mette un'opzione sbagliata voglio che venga rifatto tutto il menų

    se premo invio quindi $opzione = "", viene 2 volte

    se scrivo qualcosa e do invio, 3 VVoVe:

    www.mondoring.altervista.org/blupgrade.zip (il .bat)

  7. #7
    Scusa, ma lo hai provato?

    Il codice che ti ho postato inizializza $opzione alla stringa nulla, poi controlla che la stringa non sia nč 1 nč 2 e siccome non č nessuna delle due stampa il menu e aspetta un carattere; una volta che lo ha ricevuto controlla, se č 1 fa qualcosa, se č 2 fa qualcos'altro e poi torna alla while a controllare: se ho pigiato 1 o 2 esce dal ciclo, e il programma finisce, se invece ho pigiato qualcos'altro allora ristampa il menu e aspetta un altro tasto e cosė via.

    Al limite, se non pigio mai nč 1 nč 2, posso far stampare il menu quante volte voglio...

    Non capisco da dove tu deduca che viene stampato 3 o due volte!
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  8. #8
    Originariamente inviato da Shores
    Non capisco da dove tu deduca che viene stampato 3 o due volte!
    dal fatto che l'ho provato e ho visto che lo stampa tre volte °_°

    prova tu stesso VVoVe:

  9. #9
    Ok, ho capito dov'č il problema: devi usare fgets e non fread:

    Codice PHP:
    <?php
        $lettura
    =fopen('php://stdin''r');
        
    $scrittura=fopen('php://stdout''w');
        
    $opzione="";
        while ((
    $opzione!="1") && ($opzione!="2")):
            
    fwrite($scrittura"1) uno\n");
            
    fwrite($scrittura"2) due\n");
            
    $opzione fgets($lettura20);
            
    $opzione=substr($opzione,0,1);
            if (
    $opzione == "1"):
                
    fwrite($scrittura"Scelto uno\n");
            elseif (
    $opzione == "2"):
                
    fwrite($scrittura"Scelto due\n");
            else:
                
    fwrite($scrittura"Sbagliato!\n");        
              endif;
        endwhile;
    ?>
    Ciao!
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.