View Full Version : [PHP] Chi è bravo con letture e cicli da file txt?
PhoEniX-VooDoo
24-09-2008, 10:55
Ciao ragazzi, sto cercando di realizzare la seguente cosa:
1. Ho una cartella con dei file .txt
2. Da questa cartella devo leggere tutti i file presenti e metterli in un array (fatto)
3. A questo punto devo leggere ogni singolo file.txt (il cuo contenuto inserisco in un array con file() ) ed estrapolare determinati dati (questa parte l'ho fatta e funziona perfettamente)
Ciò che non riesco bene a fare è: automatizzare la lettura dei files (.txt) nel ciclo foreach che scorre il singolo file.
In pratica alla fine dovrei ottenere una cosa cosi: [cartella con i .txt] --> [pagina php che legge tutti i txt presenti nella cartella e li "elabora" estrapolando ciò che mi serve per ogni file]
ciao :)
PhoEniX-VooDoo
25-09-2008, 11:42
nessuno? :fagiano:
Non ho capito se sia questo il tuo problema...
Per leggere il contenuto di un file, io uso
$myFile = fopen($FilePath,"r");
$FileContent = array();
$i=0;
while (!feof($myFile))
{
$Row = fgets($myFile);
$FileContent[$i] = $Row;
$i++;
}
Alla fine il file sarà contenuto nell'array $FileContent. Ad ogni elemento dell'array corrisponde una riga sul file.
Ovviamente è possibile concatenare tutto su un'unica stringa. Basta che $FileContent non sia un array e al posto dell'assegnazione si usi ".="
PhoEniX-VooDoo
25-09-2008, 12:55
no ehm, quella parte l'ho gia fatta funzionare perfettamente.
in pratica io ho vari files txt che contengono del testo, il mio programma ecco cosa fa:
1. legge il file txt e mette tutto in un array
2. scorre l'array (foreach) e ogni volta che trova determinate parole chiave (che ricerco con substr() e stristr() ) le inserisce nel database.
il problema è che devo mettere manualmente ogni volta il nome del file sorgente (.txt), mentre vorrei che in automatico:
1. caricasse un file (.txt) dalla cartella apposita
2. eseguisse il foreach
3. caricasse il prossimo file (.txt) dalla cartella apposita e cosi via finche ci sono files nella cartella
piu chiaro?? :)
Questo (http://free-script.it/post/Script_php_Elencare_file_contenuti_in_cartella-5.htm) dovrebbe fare al caso tuo ;)
PhoEniX-VooDoo
25-09-2008, 13:27
ho gia fatto anche quello :D
il problema è che non mi viene in mente come scindere le due cose, ovvero, come scritto sopra: lettura file txt --> foreach su quel txt --> lettura prossimo file ecc.
:fagiano:
Qualcosa del genere dovrebbe fungere:
$ArrayFileInCartella = $this->elencafiles("miaDir");
for ($i=0;$i<count($ArrayFileCartella); $i++)
{
$FileEsaminato = $ArrayFileInCartella[$i];
$myFile = fopen($FileEsaminato,"r");
... continua ...
}
elencafiles è la funzione che ho indicato nel link di prima...
PhoEniX-VooDoo
26-09-2008, 11:28
ti posto il mio codice, cosi magari mi puoi dare una mano in maniera piu specifica
// apertura-lettura file
$var3 = file("file1.txt");
for ($i=0;$i<count($arr); $i++){
foreach ($var3 as &$value) {
if ($res = trim(substr(stristr( $value , 'CLOSE' ) ,5,11 ) )){
$query = "insert into blablabla " . "(function) " . "VALUES('" . $res . "')";
//$dbResult = mysql_query($query, $db);
}
}
} //for
// apertura-lettura file
Allora,
$arr è un array che contiene l'elenco dei files .txt nella mia cartella
$var3 = file("file1.txt"); è il metodo di lettura statico, che devo sostituire con uno dinamico
ho gia inserito nel for il count di $arr, pero sono un po' bloccato
PhoEniX-VooDoo
26-09-2008, 11:45
risolto, era una cagata :D
grazie di cuore per l'aiuto, ogni tanto se non mi danno una spintarella nella giusta direzione... :fagiano:
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.