Leggere file di testo in PHP
A volte capita di dover estrapolare informazioni da semplici file di testo invece che da database o file XML.
Oggi vi porto un esempio concreto.
Ho un'animazione Flash che usa un file XML per popolare l'animazione.
Gestire il contenuto di questo file XML però non è proprio una divertimento.
L'idea che mi è venuta è questa: creare un file PHP che ha come output un struttura XML e che prende il contenuto dal file di testo.
Così mi basta mettere/rimuovere solo poco contenuto dal file TXT.
Vediamo come si fa.
Prima di tutto il file TXT in questione è una cosa del genere:
Abbigliamento
Concorsi
Cucinare a bordo
Manutenzione Barca a Motore
Manutenzione Barca a Vela
News Saloni
Normative
Novità dai Cantieri
Regate
Directory Società
Itinerari
Manuali di bordo
Arcipelago Campano
Arcipelago Pontino
Dobbiamo quindi creare un file PHP che apre questo file, legge il contenuto e lo aggiunge a tag XML.
Il file in questione è semplice:
<?php
$txt = fopen('tagcloud.txt', 'r');
$xml = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
$xml .= '<tag>';
while (!feof($txt)) {
$xml .= '<a href="#" rel="tag" style="font-size: 8pt;">' . strtolower(fgets($txt)) . '</a>';
}
fclose($txt);
$xml .= '</tag>';
echo $xml;
?>
Prima di tutto apriamo il file con fopen(); il secondo parametro indica che lo voglio aprire in sola lettura.
Dopo di che iniziamo a creare la struttura XML.
Nel ciclo while usiamo feof() per indicare di continuare a scansionare il file fino a che non raggiunge la fine.
Dentro al while aggiungiamo tutti i nodi del file XML; come vedetecome contenuto metto quello che trova in ogni riga attraverso l'uso di fgets() che prende il contenuto di una riga del file indicato.
Io ho anche usato strtolower() per mettere tutti i caratteri in minuscolo, ma non è essenziale.
Dopo di che chiudiamo il file con fclose(), e stampiamo $xml.
A questo punto, nel mio caso, basterà indicare al filmato Flash questo file PHP piuttosto che il file XML.
php txt xml fopen fclose fgets feof
Commentami!