Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    181

    [PHP] Istruzioni dopo un while

    Ciao a tutti,

    sto scrivendo una pagina php che deve eseguire quanto segue:
    1) Leggere un file txt(ogni record del file è formato da sottostringhe separate da ";" e non sono di lunghezza fissa)
    2) Estrapolare da ogni record del file la sottostringa che si trova dopo la terza occorenza del ";"
    3) Verificare se tale sottostringa è presente in un vettore
    $) Se non è presente nel vettore inserirla nel vettore stesso

    Fin qui tutto bene.

    Quando provo a stampare una stringa qualsiasi dopo il while non stampa nulla. Come mai?

    Ecco il codice:

    codice:
    <?php 
    $fp = fopen("myFile.txt","r"); 
    
    if (!$fp) { 
       echo "Errore di apertura del file"; 
       } 
    else  {
       $vettptn[0] = NULL;
       $len = 0;
       while(!feof($fp)) 
       {
          $str = fgets($fp);
    
          // estrapolazione sottostringa 
          $k = 0;
          $i = 0;
          while ($k != 3)
          {
               if (strcmp($str[$i],";") == 0)
               {
                  $k = $k + 1;
               }
               $i = $i + 1;
           }
           $pos = $i;
           while (strcmp($str[$i],";") != 0)
           {
              $i = $i + 1;
           }
           $end = $i - 1;
           $strptn = substr($str, $pos , $end-$pos+1);
    
           // Inserimento nel vettore 
           if (!(in_array($strptn,$vettptn)))
           {
              $vettptn[$len] = $strptn;
              $len = $len + 1;
           }
        }
        echo "CIAO 
    ";
        }
    fclose($fp);
    ?>

    Grazie in anticipo per l'aiuto

  2. #2
    Mai sentito parlare della funzione explode()?
    Invece di scorrere ciascun record alla ricerca dei ; puoi utilizzarla per parserizzare il record utilizzando come delimitatore il simbolo ;

    Riguardo alla tua domanda probabilmente lo script scoppia in qualche unto per cui non arriva mai all'istruzione echo successiva al while
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    181
    Ciao Satifal,

    grazie mille per la dritta di explode() che proverò subito.

    Per quanto riguarda la mia domanda riproverò a capire dove il while scoppia anche se in precedenza ho stampato tutti i record del file e li stampa tutti correttamente.

    Nel frattempo se ci sono altre dritte sono ben lieto di riceverne.

    Grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    181
    Ciao a tutti,

    un rigraziamento particolare a Satifal.

    Con la funzione explode funziona tutto, probabilmente come tu dicevi scoppiava in qualche punto il ciclo while.

    Grazie mille

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.