Come estrarre casualmente dati da un file XML utilizzando PHP

Come estrarre casualmente dati da un file XML utilizzando PHP

Come estrarre casualmente dati da un file XML utilizzando PHP: Creare uno script in PHP che prende una citazione casuale da un elenco XML.

Tempo di lettura stimato: 4 minuti

Come estrarre casualmente dati da un file XML utilizzando PHP

In questo tutorial vedremo un metodo per estrarre casualmente una citazione da un file XML.

Per farlo andremo a creare 3 file:

  • citazione.xml
  • carica_citazioni.php
  • index.php

Il file citazione.xml contiene le varie citazioni da caricare, il file carica_citazioni.php contiene il codice che gestisce la lettura del file xml e la creazione delle variabili con i testi da mostrare.

Il file index.php è teoricamente facoltativo, serve solo per avere una pagina alla quale inviare le informazioni e quindi mostrare i dati estratti.

Per l’esercizio ovviamente è fondamentale anche il file index.php, ma per chi avesse un sito personale questo file puù anche essere rimosso.

Il codice sorgente infatti prevede una cartella chiamata generatore_citazioni che va copiata all’interno del proprio progetto e che permette quindi di andare ad utilizzare lo script potenzialmente ovunque.

Creazione citazione.xml

Iniziamo creando il file xml con l’elenco delle citazioni, questo file contiene un elemento radice chiamato citazioni, poi un elemento citazione che indica ogni singola citazione, e 2 sotto elementi chiamati autore e contenuto presenti in ogni citazione.

<?xml version="1.0" encoding="UTF-8" ?>
<citazioni>
    <citazione>
        <autore>Oscar Wilde</autore>
        <contenuto>Siamo tutti nella fogna, ma alcuni di noi guardano le stelle.</contenuto>
    </citazione>
    <citazione>
        <autore>Nelson Mandela</autore>
        <contenuto>La più grande gloria nella vita non sta nel non cadere mai, ma nell'alzarsi ogni volta che cadiamo.</contenuto>
    </citazione>
    <citazione>
        <autore>Joseph Campbell</autore>
        <contenuto>Dobbiamo lasciare andare la vita che abbiamo pianificato, per accettare quella che ci sta aspettando.</contenuto>
    </citazione>
    <citazione>
        <autore>Eleanor Roosevelt</autore>
        <contenuto>Il futuro appartiene a coloro che credono nella bellezza dei loro sogni.</contenuto>
    </citazione>
    <citazione>
        <autore>Theodore Roosevelt</autore>
        <contenuto>Credere di poter farcela ti fa già essere a metà strada.</contenuto>
    </citazione>
</citazioni>

Creazione carica_citazioni.php

Ora che abbiamo il file xml con i dati da estrarre possiamo passare al codice php che si occuperò di aprire il documento, leggerne il contenuto, generare un numero casuale ed aprire quindi il rispettivo contenuto.

L’utilizzo delle funzioni ci permette di inviare le variabili alle pagine esterne senza dover utilizzare variabili di sessione o metodi più complessi.

Questo permette di integrare questo script in qualsiasi progetto semplicemente aggiungendo una riga di codice (include) alla pagina nella quale mostrare il contenuto.

<?php
// CARICA IL DOCUMENTO XML
$documento_xml = new DOMDocument();
$documento_xml->load('generatore_citazioni/citazioni.xml');

// LEGGI TUTTI GLI ELEMENTI DEL FILE XML
$citazioni = $documento_xml->getElementsByTagName('citazione');

// SELEZIONA UNA CITAZIONE A CASO
$numero_casuale = rand(0, $citazioni->length - 1);
// CARICA LA CITAZIONE CASUALE
$citazione_casuale = $citazioni->item($numero_casuale);

// CREA SINGOLA VARIABILE PER AUTORE E CITAZIONE
$autore = $citazione_casuale->getElementsByTagName('autore')->item(0)->nodeValue;
$contenuto = $citazione_casuale->getElementsByTagName('contenuto')->item(0)->nodeValue;

function CaricaAutore()
{
    global $autore;
    return $autore;
}
function CaricaCitazione()
{
    global $contenuto;
    return $contenuto;
}
?>

Creazione index.php

Questa pagina è molto semplice, ha una struttura di base in html e contiene una riga in php per includere il file carica_citazione.php.

Con il file caricato, non ci resta altro che inserire le funzioni create nella pagina precedente nel punto in cui vogliamo mostrare il testo.

Il risultato finale sarà:

<?php include 'generatore_citazioni/carica_citazioni.php' ; ?>
<html>
<head>
    <style>
        h1 {color:red; font-wight:bold;}
        p {font-style:italic;}
    </style>
</head>
<body>
    <h1><?php echo CaricaCitazione(); ?></h1>
    <p><?php echo CaricaAutore(); ?></p>
</body>
</html>

Download codice sorgente

Il codice sorgente comprende tutti e 3 i file, per poterlo testare è necessario caricarli su uno spazio web o utilizzare un software come XAMPP o EasyPHP.

Video

Nel video puoi seguire l’intero tutorial di sviluppo dello script ed avere anche indicazioni su come modificarlo e personalizzarlo per adattarlo alle tue necessità.