Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 24
  1. #1
    Utente di HTML.it L'avatar di Gabbro
    Registrato dal
    Nov 2000
    Messaggi
    828

    [php] cercare in un file.txt una frase

    Come posso cercare in un file.txt una frase per vedere se è presente o meno?

  2. #2
    Se il file è piccolo, puoi caricarlo in una variabile (es. utilizzando file_get_contents) ed utilizzare strpos(), una espressione regolare od una funzione equivalente per identificare il testo.

    Se il file è grande puoi utilizzare fopen/fread/fclose ed un ciclo per caricare in un buffer il contenuto del file e cercare la frase "a pezzi".

  3. #3
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    Originariamente inviato da filippo.toso
    Se il file è grande puoi utilizzare fopen/fread/fclose ed un ciclo per caricare in un buffer il contenuto del file e cercare la frase "a pezzi".
    col rischio di fallire se nel buffer capita solo un pezzo della frase...
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  4. #4
    col rischio di fallire se nel buffer capita solo un pezzo della frase...
    Si, certo, a meno di implementarlo correttamente, ossia leggendo un buffer della dimensione della frase ed accodando due letture consecutive ad ogni ciclo in modo da avere la certezza che la frase intera sarà comunque presente nel buffer che si andrà ad analizzare.

  5. #5
    Interessa anche a me l'argomento e mi intrometto.
    Questo script dovrebbe leggere il file riga per riga, ma non stampa le righe separatamente, é possibile farlo? E scrivere ";" all'inizio di ogni riga?
    codice:
    $news=fopen("/Applications/MAMP/htdocs/TEATRO/admin/upload/scheda.txt","r");  //apre il file
    while (!feof($news)) {
    $buffer = fgets($news, 255);
    echo "$buffer
    "; //riga letta
    }
    fclose ($news); //chiude il file
    En la habana hay una pila 'e locos!

  6. #6
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    Originariamente inviato da filippo.toso
    Si, certo, a meno di implementarlo correttamente, ossia leggendo un buffer della dimensione della frase
    e ancora non si risolve il problema del troncamento della frase...

    ed accodando due letture consecutive ad ogni ciclo in modo da avere la certezza che la frase intera sarà comunque presente nel buffer che si andrà ad analizzare.
    cioè? esempio pratico...
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  7. #7
    Script:

    Codice PHP:
    <?php

    $handle 
    fopen('content.txt''r');

    $search 'hello world!';

    // proof of concept
    $buffer_size strlen($search); 
    // optimized solution
    // $buffer_size = max(strlen($search), 8192);

    $found false;
    $content '';
    $prev_token '';
    while (!
    feof($handle)) {

        
    $token fread($handle$buffer_size);
        
    $content $prev_token $token;
        
    $prev_token $token;

        if (
    strpos($content$search) !== false) {
            
    $found true;
            break;    
        }
    }
    fclose($handle);

    if (
    $found === true) {
        echo(
    "The '$search' string has been found!");
    } else {
        echo(
    "The '$search' string hasn't been found!");
    }

    ?>
    File content.txt di esempio:

    Codice PHP:
    ####hello world!#### 

  8. #8
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    ma questo codice non fa il giochino delle 2 lettere... lui legge il file a blocchi = lunghezza della stringa, e man mano che legge accoda a $content e fa il confronto. se alla fine del ciclo non è stato trovato niente $content= contenuto completo del file....
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  9. #9

  10. #10
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    riletto... e rimango della stessa idea.
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

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 © 2024 vBulletin Solutions, Inc. All rights reserved.