Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    1,683

    ricerca di una parola in un file

    ciao a tutti!! se volessi fare la ricerca di una parola in un file com'è il modo migliore di procedere??
    io ho fià lo script che apre la direcroty, apre il file e lo scorre con un while... ora che ci metto nel while? anche senza codice, mi dovreste aiutare per la logica più fnzionale.. grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    1,683
    fin ora la cosa più performante che ho trovato è la funzione strstr

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Devi solo sapere se questa parola c'è?
    In tal caso puoi usare anche strpos() che ritorna la posizione della parola/substring se la trova oppure false in caso contrario.
    Con strpos() devi fare il confronto con !== false, non farlo usando != perché avresti una risposta errata in caso la parola fosse all'inizio della stringa in cui cerchi.

    Altra alternativa è usare un'espressione regolare (con preg_match), ma se sai già a priori la parola da cercare non ti conviene.

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    1,683
    perfetto!! grazie mille

  5. #5
    Dipende tutto dal tipo di ricerca che vuoi effettuare. Una ricerca complessa (quella di google per esempio) richiede un complicatissimo algoritmo, mentre per una ricerca più semplice, che ad esempio cerca solamente la presenza di keyword nel testo, puoi procedere in questo modo: Memorizzi tutte le keyword (i termini di ricerca) in un array. Dopodichè, per ogni file esaminato crei una variabile con valore 0. Poi nel contenuto del file cerchi ciascuna keyword, aggiungendo alla variabile appena creata il numero di volte che la keyword è stata trovata (puoi usare str_replace). A questo punto inserisci i nomi dei file in un array in base al numero di keyword trovate. In questo modo puoi visualizzarli in ordine, in base a quanto corrispondono ai termini di ricerca.
    Codice PHP:
    <?php
    //la lista dei file in cui cercare
    $listaDeiFile = array("file1.txt""file2.txt""file3.txt");
    //I termini della ricerca
    $keywords = array("termini""di""ricerca");
    //Array in cui memorizzare i file in base alle keyword trovate
    $ricorrenzePerFile = array();
    //Scorro tutti i file
    foreach($listaDeiFile as $file)
    {
    //Leggo il contenuto del file
    $contenuto file_get_contents($file);
    $ricorrenze 0;
    //Scorro le keyword
    foreach($keywords as $key)
    {
    $trovata 0;
    //Ricavo il numero di volte che la keyword è presente nel file 
    str_replace($key$key$contenuto$trovata);
    //Aggiungo al totale di keyword trovata
    $ricorrenze += $trovata;
    }
    //Memorizzo le keyword trovate nel file in un array
    $ricorrenzePerFile[$file] = $ricorrenze;
    }
    //Ordino l'array in ordine di keyword trovate
    sort($ricorrenzePerFile);
    //Scrivo i risultati della ricerca nell'ordine dell'array
    $num 1;
    foreach(
    $ricorrenzePerFile as $file=>$record)
    {
    echo 
    "Risultato numero {$num}{$file}, con {$record} parole chiave trovate.";
    $num++;
    }
    Non ho provato il codice, ma dovrebbe andare. Spero di esserti stato utile!


    EDIT: Ops, troppo tardi.

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    1,683
    grazie... ora gli do una letta più da vicino... anche se ho risolto potrebbe tornarmi utile in futuro...
    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.