Giuro che ho cercato e cercato e ancora cercato, ma non sono riuscito a venire a capo di questo problema.
La funzione simplexml_load_file() non è definita... ma da quel che ho letto, con PHP5 dovrebbe essere supportata, e se non sbaglio, PHP5 è attivo su Altervista, confermate?
Ora il codice... ho scritto
Codice:
<?xml version="1.0" encoding="UTF-8"?>
<!-- DataBase 0.5.0 del 10/01/2010 -->
<poesie>
<poesia>
<titolo>DivinaCommedia</titolo>
<testo>nel mezzo...
mi ritrovai...
</testo>
</poesia>
</poesie>
per poi chiamarlo con
Codice PHP:
<?php
$titoloRichiesto = "";
if ( isset($_REQUEST["titolo"]) )
{
$titoloRichiesto = $_REQUEST["titolo"];
}
$xml = simplexml_load_file('xml/poesie.xml');
$arr = $xml->xpath("/poesie/poesia");
// se il titolo NON è settato nell'url
// mostro i titoli
if (empty($titoloRichiesto))
{
echo '<div id="titoli">';
echo "<ul>";
foreach($arr as $poesia)
{
echo '<li><a href="index.php?pagina=poesie&titolo='.$poesia->titolo.'">'.$poesia->titolo.'</a></li>';
}
echo "</ul>";
echo '</div>';
}
// altrimenti il testo della poesia
else
{
echo '<div id="testo">';
$titoloPrecedente = "";
$titoloDaEsaminare = "";
$titoloSuccessivo = "";
$esiste = 0;
foreach ($arr as $poesia)
{
//dico che il titolo precedente è uguale a quello già esaminato
//$titoloPrecedente = $titoloDaEsaminare;
//se il titolo preso nell'xml è ugule a quello richiesto
if ($poesia->titolo == $titoloRichiesto)
{
//prendo il testo sostituendo i ritorni a capo con i tag opportuni
$toPrint = str_replace( "\n", "<br/>\n", $poesia->testo);
//dico che il titolo precedente è uguale a quello già esaminato
$titoloPrecedente = $titoloDaEsaminare;
//dico che il titolo da esaminare è uguale a quello richiesto
$titoloDaEsaminare = $titoloRichiesto;
//affermo d'aver trovato il titolo
$esiste = 1;
}
//se il titolo non è lo stesso
else
{
// ma è stato già trovato
if ($esiste == 1)
{
//dico solo che la successiva è quella che sto analizzando
$titoloSuccessivo = $poesia->titolo;
break;
}
// e non è stato ancora trovato
else
{
//dico che il titolo precedente è uguale a quello già esaminato
$titoloPrecedente = $titoloDaEsaminare;
//dico che il titolo da esaminare è uguale a quello richiesto
$titoloDaEsaminare = $poesia->titolo;
}
}
}
echo "<table>";
echo " <tr>";
echo " <td><a href=\"index.php?pagina=poesie&titolo=".$titoloPrecedente."\"><<</a></td> ";
echo " <td><a href=\"index.php?pagina=poesie\">Torna ai titoli</a></td> ";
echo " <td><a href=\"index.php?pagina=poesie&titolo=".$titoloSuccessivo."\">>></a></td>";
echo " </tr>";
echo "</table>";
echo "<h1>" . $titoloRichiesto . "</h1>";
$toPrint = str_replace( "\n", "<br/>\n", $poesia->testo);
echo $toPrint;
echo "</div>";
}
?>
inclusa in una pagina completa
ma mi da l'errore che alla riga in cui v'è la chiamata alla funzione.
Dove sbaglio, se sbaglio? Come risolvere?
GRAZIE