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

    gestione righe file di testo

    Vi chiedo un parere su questa realizzazione. Premetto che non ho la possibilità di usare un MySQl.

    Ho una pagina web con una serie di nominativi ed indirizzi collegati. La stessa lista ce l'ho anche in un file di word così:

    1) Luca Rossi, Maria Neri - Via Roma, 40 - Roma
    2) Mario Bianchi, Luca Rossi, Mirko Azzurro - Via Milano, 40 - Milano
    3) ecc...
    fino a 250 voci...

    Vorrei permettere agli utenti che visitano la pagina di poter effettuare una ricerca fra queste righe e visualizzare solo le righe interessate.

    NB Luca Rossi (come altri) potrebbero essere presenti in piu' righe.

    Se creo un file txt che tipo di select dovrei fare?

    :rollo:
    *** You shouldn't compare yourself to the best others can do but to the best you can do ***

  2. #2
    se hai i dati in un file ASCII o UTF-8 basta fare come segue:

    Codice PHP:
    <?php
      $voci_trovate 
    = array();
      
    // supponiamo che vuoi cercare Luca Rossi inserito nella variabile $nome
      
    $lines file('archivio.txt');
      foreach (
    $lines as $line) {
        
    // explode crea un array composto dai pezzi di ogni linea
        
    $arr explode(','$line);
        for (
    $i=0$i<count($arr); $i++) {
           
    // cerca una corrispondenza con $nome
          
    if ($arr[$i]==$nome) {
            
    // se la voce è stata trovata aggiungila a $voci_trovate
            
    array_push($voci_trovate$line);
          }
        }
        
    //visualizza le righe trovate
       
    if (count($voci_trovate)) {
         for (
    $i=0$i<count($voci_trovate); $i++)
            echo ++
    $i." - ".$voci_trovate[$i]."</br />";
       } else
           echo 
    "nessuan corrispondezna trovata";
      }
    ?>

  3. #3
    GRAZIE PER LA TEMPESTIVITA DELLA RISPOSTA...
    Ho provato ma non funge bene... ecco quello che mi viene:
    il file voci.txt è così riempito (file mio di prova):

    LUCA ROSSI, GIULIA MASCOTTO, MILANO.
    GIANDUIA ROSSI, MAURO CECCA, LIVORNO.
    SILVIA ROSSI, FRANCE BIANCHI, ROMA.

    Se imposto
    Codice PHP:
    $nome="GIANDUIA ROSSI"
    a video ottengo:

    nessuna corrispondenza trovata
    1 -
    1 -


    Il primo giro è corretto, in quanto sulla prima riga non trova nulla. Al secondo giro trova la corrispondenza... ma non mi visualizza il rigo ma solo un 1 -
    *** You shouldn't compare yourself to the best others can do but to the best you can do ***

  4. #4
    ebbene sì anche i grandi sbagliano (modestamente parlando) eccoti la versione corretta:

    Codice PHP:
    <?php
      $nome 
    "GIANDUIA ROSSI";
      
    $voci_trovate = array();
      
    // supponiamo che vuoi cercare Luca Rossi inserito nella variabile $nome
      
    $lines file('voci.txt');
      foreach (
    $lines as $line) {
        
    // explode crea un array composto dai pezzi di ogni linea
        
    $arr explode(','trim($line));
        for (
    $i=0$i<count($arr); $i++) {
           
    // cerca una corrispondenza con $nome
          
    if ($arr[$i]==$nome) {
            
    // se la voce è stata trovata aggiungila a $voci_trovate
            
    array_push($voci_trovate$line);
          }
        }
      }
      
    //visualizza le righe trovate
      
    if (count($voci_trovate)) {
        for (
    $i=0$i<count($voci_trovate); $i++)
           echo 
    $i." - ".$voci_trovate[$i]."</br />";
      } else
          echo 
    "nessuna corrispondenza trovata
    "
    ;
    ?>

  5. #5
    Perfetto, adesso è tutto ok...

    GRANDE!
    *** You shouldn't compare yourself to the best others can do but to the best you can do ***

  6. #6
    Approfitto della tua gentilezza e prontezza:

    In un file di testo, posso fare una ricerca non case-sensitive?

    Ho un testo (il famoso file di testo) nel quale ho parole sia maiuscole sia minuscole. Avrei bisogno che un utente che cerca "Roma" possa trovare le righe in cui Roma è scritta roma o ROMA...

    Sto cercano online ma per il momento non ho trovato nulla... e non posso usare strtoupper per rendere tutto maiuscolo... perche il testo nel file di testo deve rimanere così com'è.

    help..
    *** You shouldn't compare yourself to the best others can do but to the best you can do ***

  7. #7
    sigh sigh, sembra non esserci una funzione apposita...
    ALlora dovrò fare una triplice ricerca: prima giro tutto il file di testo in cerca di ROMA, poi lo rigiro per cercare Roma e poi lo rigiro per cercare roma...

    Ci speravo quasi...
    *** You shouldn't compare yourself to the best others can do but to the best you can do ***

  8. #8
    Questa è l'ultima domanda:

    Ogni riga del mio file txt e' cosi' fatta (per esempio):

    1) Luca Rossi, - Via Roma, 40 - Roma

    Se io uso:

    Codice PHP:
    $arr explode(' 'trim($line)); 
    nell'array ho:
    [0]-> Luca
    [1]-> Rossi,
    [2]-> Via
    [3]-> Roma,
    [4]-> 40
    [5]-> -
    [6]-> Roma

    Io devo dividere anche Roma dalla virgola, come posso fare??
    *** You shouldn't compare yourself to the best others can do but to the best you can do ***

  9. #9
    Originariamente inviato da chef
    sigh sigh, sembra non esserci una funzione apposita...
    ALlora dovrò fare una triplice ricerca: prima giro tutto il file di testo in cerca di ROMA, poi lo rigiro per cercare Roma e poi lo rigiro per cercare roma...

    Ci speravo quasi...
    Penso che tu possa utilizzare la funzione strtoupper(): potresti effettuare un'unica scansione del file cercando quelle parole che date in pasto a questa funzione diano come risultato "ROMA", in questo modo cioè:

    ->strtoupper('Roma')=ROMA
    ->strtoupper('roma')=ROMA
    ->strtoupper('ROMA')=ROMA
    ->strtoupper('RoMA')=ROMA
    ...
    o qualsiasi altra combinazione di maiuscole/minuscole danno come risultato ROMA

  10. #10
    Originariamente inviato da chef
    Questa è l'ultima domanda:

    Ogni riga del mio file txt e' cosi' fatta (per esempio):

    1) Luca Rossi, - Via Roma, 40 - Roma

    Se io uso:

    Codice PHP:
    $arr explode(' 'trim($line)); 
    nell'array ho:
    [0]-> Luca
    [1]-> Rossi,
    [2]-> Via
    [3]-> Roma,
    [4]-> 40
    [5]-> -
    [6]-> Roma

    Io devo dividere anche Roma dalla virgola, come posso fare??
    Non so se ti può essere realmente utile ma puoi utilizzare la funzione substr():

    Codice PHP:
    $rest substr("Roma,"0, -1); 
    in questo caso viene cancellato l'ultimo carattere della stringa inserita come primo parametro della funzione substr(), se vuoi una descrizione più dettagliata della funzione in questione eccoti il link:

    substr()

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.