Ciao a tutti.
Ho un file di testo che registra alcune informazioni con la seguente forma:
info1|info2|info3|
E' possibile stampare a video l'ultimo dato presente nel file?
Il file non ha un numero preciso di dati, questi aumentano continuamente.
Ciao a tutti.
Ho un file di testo che registra alcune informazioni con la seguente forma:
info1|info2|info3|
E' possibile stampare a video l'ultimo dato presente nel file?
Il file non ha un numero preciso di dati, questi aumentano continuamente.
non so se è il modo più efficiente, ma è il più semplice...Codice PHP:
function last_row($file)
{
$contenuto = file($file);
$i = count($contenuto);
$ultimo = $contenuto[--$i];
unset($contenuto);
return $ultimo;
}
echo last_row('frasi.txt');
Va anche detto che se a te serve sempre esolo 'ultimo record... potresti anche memorizzare sempre e solo quello sul file... o magari avere un file archvio dove appendi ed uno in cui tieni solo l'ultimo record (no forse questa soluzione è ancora più inefficiente)... insomma.. vedi tu
![]()
Chiedo venia ma preso dalla fretta ho scritto male la richiesta
La necessità è quella di stampare il dato che ha maggiori presenze all'interno del file.
Io avevo explodato il file di testo in un array, poi attraverso array_count_values contato le occorrenze di tutti gli elementi del file e infine con un foreach stampato il file con più occorrenze.
Il problema nasceva dal fatto che mi veniva stampato il numero delle occorrenze e non il nome.
Zau!
quado devi fare operazioni del genere conviene usare i database (che altro non sono che file strutturati in modo particolare per offrire prestazioni sicurezza e funzionalità di ricerca come quella che chiedi)..... cmq hai risolto..
![]()
Ehm no, non ho risolto ho solo sbagliato a scrivere con l'imperfetto
Il problema resta, cioè, riesco a fare in modo che il risultato stampato sia quello con più occorrenze, però mi viene stampato il numero e non il nome.
P.s.: Userei volentieri il database se non fosse che sto creando uno script per chi non lo ha a disposizione, e quindi devo spremere al masimo i file di testo
Ciao e grazie per le risposte
posta il codice no?![]()
Ecco il codice:
In questo modo mi stampa il numero di occorrenze e non il nome.Codice PHP:
$opzioni=explode("|",trim(implode("",file('browser.dat'))));
$count = array_count_values($opzioni);
array_multisort ($count, SORT_DESC);
foreach ($count as $opzioniItem){
if ($opzioniItem != null){
$maggiore = array_pop($count);
}
}
echo "$maggiore";
EDIT: Forse è un po' rozza come soluzione ma ho risolto così:
In pratica con array_flip ho invertito gli indici con le chiavi e in questo modo funza.Codice PHP:
$opzioni=explode("|",trim(implode("",file('browser.dat'))));
$count = array_count_values($opzioni);
array_multisort ($count, SORT_DESC);
$count = array_flip($count);
foreach ($count as $opzioniItem => $key){
if ($opzioniItem != null){
$maggiore = array_pop($count);
}
}
echo "$maggiore";
Grazie cmq per il tempo dedicato![]()
[11:37:14] <@[AlberT]> !php array_count_values
[11:37:15] <@AlboT> array array_count_values(array input) - Return the value as key and the frequency of that value in input as value - http://it2.php.net/array_count_values
<?php echo ' Emiliano Gabrielli (aka AlberT) ',"\n",
' socio fondatore e membro del direttivo del GrUSP ',"\n",
' AlberT_at_SuperAlberT_it - www.SuperAlberT.it ',"\n",
' IRC: #php,#AES azzurra.com ',"\n",'ICQ: 158591185'; ?>