View Full Version : [PHP] Alla ricerca della riga richiesta
error 404
06-03-2008, 15:25
Rieccomi qua,
volevo sapere se c'è un modo per poter prelevare una determinata riga da un .txt.
Es. questo è il testo:
abc
74
0
niente
...
se io volessi prendere solo la terza riga come faccio?
O meglio ancora: da una determinata colonna ad un'altra in una data riga.
(mi accontento della prima :D ).
Grazie ciao
Per quel poco che so di PHP :stordita:
$nomefile = 'file.txt';
$righe = file ($nomefile);
Il file file.txt viene letto integralmente nel vettore $righe; da qui puoi, con un ciclo ad esempio il foreach, fare la scansione di tutti gli elementi, oppure dato che a te serve un elemento specifico ci accedi direttamente con l'indice.
error 404
06-03-2008, 17:29
Ho trovato in parte una soluzione.
La funzione split() è perfetta, ma la devo integrare in un certo modo.
Prendendo questo esempio:
// Delimitatori di testo: barre, punti, trattini
$data = "04/30/1973";
list ($mese, $giorno, $anno) = split ('[/.-]', $data);
echo "Mese: $mese; Giorno: $giorno; Anno: $anno<br>\n";
?>
Per fargli leggere il fiel ho fatto così:
$myFile = $nome.".txt";
$fh = fopen($myFile, 'r');
$data = $myFile;
e tutte le altre cose
però mi legge solo la prima variabile...
@Xfree: ora provo la tua soluzione.
Xalexalex
06-03-2008, 20:30
Eh ma così non funge :D
Se vuoi leggere il file ti tocca
$file_cont=fread($fp,filesize($percorsofile));
se vuoi leggerlo tutto.
Se invece vuoi leggerlo una riga per volta, la funzione file() è quello che fa per te :D
error 404
07-03-2008, 13:43
Non riesco ad utilizzare nessuna delle due :stordita:
Non è che mi potresti fare la scrittura precisa? (il file da aprire è $nome".txt").
Comunque la soluzione di lettura a singola riga non mi va più bene, perchè devo riportare più valori accanto a più frasi precise per ognuno.
error 404
07-03-2008, 18:24
Già che ci sono chiedo anche come faccio a far cambiare una variabile a seconda di una scelta fatta tramite i menu a tendina, tipo:
<select>
<option selected>Aumenta ad di 1</option>
<option>Aumenta ad di 2</option>
<option>Aumenta ad di 3</option>
</select>
la variabile da cambiare è $ad.
Ma guarda..io per fare una prova al volo ho fatto così :
ho copiato in un file di testo chiamato file.txt
abc
74
0
niente
e poi ho creato uno script babbissimo :D
<?php
$nomefile = 'file.txt';
$righe = file($nomefile);
echo $righe[2];
?>
Così sul browser mi compare 0, che è quanto tu avevi richiesto inizialmente di prendere la terza riga; cos'è esattamente che non ti funziona?
error 404
07-03-2008, 21:15
Così sul browser mi compare 0, che è quanto tu avevi richiesto inizialmente di prendere la terza riga; cos'è esattamente che non ti funziona?No, non è che non mi funzionava qualcosa, non sapevo come usarlo :mc:
Comunque adesso è perfetto... o quasi: il nome del file txt è variabile e in altri campi ho usato
$nome_file = $nome".txt";
$righe = file($nome_file);
e funzionava, ma con questo non viene. Cioè gli devo dare il nome preciso tipo "abc.txt";.
No, non è che non mi funzionava qualcosa, non sapevo come usarlo :mc:
Comunque adesso è perfetto... o quasi: il nome del file txt è variabile e in altri campi ho usato
$nome_file = $nome".txt";
$righe = file($nome_file);
e funzionava, ma con questo non viene. Cioè gli devo dare il nome preciso tipo "abc.txt";.
E certo che non ti funziona così; se vuoi separare il nome del file dall'estensione
devi usare la concatenazione delle stringhe che in PHP si fa con l'operatore punto.
<?php
$nome = 'file';
$nomefile = $nome.'.txt';
$righe = file($nomefile);
echo $righe[2];
?>
Così alla stringa file viene concatenata la stringa .txt ottenendo nella variabile nomefile la stringa file.txt.
Chiaramente l'echo è solo un esempio ma puoi farci quello che vuoi. :p
error 404
08-03-2008, 11:52
Che pirla che sono! :doh:
Per un puntino, che per di più nelle volte precedenti l'ho sempre usato :D
Bè allora grazie mille, non è che sai aiutarmi anche per il menu a tendina+cambio variabile (http://www.hwupgrade.it/forum/showpost.php?p=21458152&postcount=6)?
EDIT: non mi funza :(
<?php
$nome = 'file';
$nomefile = $nome.'.txt'; //Lettura singole righe//
$righe = file($nomefile);
echo "Nome: ".$righe[0]."<br/>";
?>
mi appare solo "nome:", ma non il valore.
:mbe:
Strano..:what: A me funziona.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.