Tips and Tricks

Home | Tips and Tricks | Art. # 68

Leggere un file XML con PHP

Registrazione Domini
Registrazione Domini Internet ai prezzi più bassi d'Europa: soli 5,40 euro più IVA all'anno!

PHP dispone di classi dedicate alla gestione del formato XML, abbastanza ostiche per chi è alle prime armi col PHP e con l'XML. E' tuttavia possibile utilizzare le funzioni per la gestione dei file, le funzioni per le espressioni regolari ed un po di fantasia per leggere un file XML in modo semplice e veloce.

Iniziamo a creare un file XML che chiameremo utenti.xml e che abbia la seguente struttura di codice:

<?xml version="1.0" encoding="UTF-8"?>
<utenti>
    <utente>
        <nome>Pippo</nome>
    </utente>
    <utente>
        <nome>Pluto</nome>
    </utente>
    <utente>
        <nome>Paperino</nome>
    </utente>
</utenti>

Creiamo adesso il file utenti.php che verrà corredato dal seguente codice:

<?
    $indice = 256;
    $contatore = 0;
    $quanti = 3;
    $apri_xml = fopen("utenti.xml", "r");
    while(!feof($apri_xml))
    {
        $buffer = ltrim(Chop(fgets($apri_xml, $indice)));
        if (($buffer == "<utente>") && ($contatore < $quanti))
        {
            $nome = ltrim(Chop(fgets($apri_xml, $indice)));
            $nome = ereg_replace("<nome>", "", $nome);
            $nome = ereg_replace("</nome>", "", $nome);
            $nome = ereg_replace("\"", "\\\"", $nome);
            echo $nome . "<br>";
            $contatore++;
        }
    }
    fclose($apri_xml);
?>

I passaggi salienti dello script PHP che ottempera alla lettura dell'XML sono pochi e semplici: apriamo innanzitutto il file XML in modalità di lettura per poi parsarlo con le funzioni per la gestione dei file al fine di identificare il tipo di contenuto ed accedere ai singoli nodi del file XML eliminando i tag ed isolando il reale contenuto della struttura di dati XML presentata in precedenza.

 

Scritto in data 14/03/2008

Segnalalo ad un Amico | Aggiungilo ai Preferiti

© 2008 Appunti PHP - A cura di Luca Ruggiero - Partita IVA 05564851219 - Privacy | Pubblicità | Contatti