Come posso cercare in un file.txt una frase per vedere se è presente o meno?
Come posso cercare in un file.txt una frase per vedere se è presente o meno?
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".
col rischio di fallire se nel buffer capita solo un pezzo della frase...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".
Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle
il mio profilo su PHPClasses e il mio blog laboweb
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.col rischio di fallire se nel buffer capita solo un pezzo della frase...
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!
e ancora non si risolve il problema del troncamento della frase...Originariamente inviato da filippo.toso
Si, certo, a meno di implementarlo correttamente, ossia leggendo un buffer della dimensione della frase
cioè? esempio pratico...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.
Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle
il mio profilo su PHPClasses e il mio blog laboweb
Script:
File content.txt di esempio: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!");
}
?>
Codice PHP:
####hello world!####
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
Rileggi meglio il codice.
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