Codice PHP:
<?php
$varFeed = "http://hackmix.altervista.org/syndication.php?fid=5&limit=15"; // Nome del file XML
$tagElements = "item"; // Nome del TAG XML che racchiude ogni elemento
// Variabili globali
$insideitem = false;
$tag = "";
$title = "";
$link = "";
function startTAG($parser_handle, $name, $attrs)
{
global $insideitem, $tag, $title, $link, $tagElements;
if ($insideitem)
$tag = $name;
elseif (strtolower($name) == $tagElements)
$insideitem = true;
}
function endTAG($parser_handle, $name)
{
global $insideitem, $title, $link, $tagElements;
if (strtolower($name) == $tagElements)
{
echo "[*]<a href=\"" . trim($link) . "\" title=\"" . trim($title) . "\">" . trim($title) . "</a>";
$title = "";
$link = "";
$insideitem = false;
}
}
// Lettura dei dati
function readData($parser_handle, $data)
{
global $insideitem, $tag, $title, $link;
if ($insideitem)
{
switch (strtolower($tag))
{
case "title":
$title .= $data;
break;
case "link":
$link .= $data;
break;
}
}
}
// Creazione del parser...
$xml_parser = xml_parser_create();
// Gestore eventi: indico le funzioni che determinano inizio e fine di ciascun elemento da leggere...
xml_set_element_handler($xml_parser, "startTAG", "endTAG");
// Gestore eventi: indico la funzione che si occupa della lettura dei dati...
xml_set_character_data_handler($xml_parser, "readData");
// Apertura feed RSS...
$feedRSS = fopen($varFeed,"r") or die("Errore di lettura!");
// Leggo
echo "<ul>";
while ($data = fread($feedRSS, 4096)) {
if (!xml_parse($xml_parser, $data, feof($feedRSS))) {
die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
}
}
echo "[/list]";
// Operazioni finali per chiudere lo streem XML e rilasciare il parser...
fclose($feedRSS);
xml_parser_free($xml_parser);
?>
Questo qui sopra è il mio codice PHP (index.php) che dovrebbe leggermi i miei Feed RSS.
Però quando provo mi da errore: Errore di lettura!
Mi dite da cosa può essere casuato?
I feed sono questi: http://hackmix.altervista.org/syndic...fid=5&limit=15
Grazie mille! =D