Como seria el script

legacom
30 de Mayo del 2005
Hola que tal no tengo mucha idea de programacion,a ver si alguien me puede ayudar,tengo un archivo xml de galerias de imagenes autoactualizable y quisiera saber que hacer para mostrar las galerias,gracias de antemano y un saludo.

legacom
30 de Mayo del 2005
Por cierto he encontrado este codigo por hay,pero no me funciona ¿que falla?
CODIGO:
<?// fichero que alojamos en nuestro server con privilegios de escritura
$file_xml="fichero_de_galerias.xml";
// ruta a la carpeta donde alojaremos las imagenes para distinguir entre videos y videos
$path_imgs="images/";
$parser = new parser;
//$fp = $parser->getXML("http://direccion/fichero_de_galerias.php?format=XML&params=", $file_xml);
class parser {

var $insideitem = false;
var $tag = "";
var $title = "";
var $description = "";
var $link = "";

function getXML($source, $target) {
$time = time() - 21600;

if(filemtime($target) < $time) {
$fp = fopen($source, 'r');
$fd= fopen($target, 'w');
fclose($fd);
while (!feof($fp)) {
$buffer = fgets($fp, 4096);
$fd= fopen($target, 'a');
fputs($fd, $buffer);
fclose ($fd);
}

fclose($fp);
}
$this->fp = fopen($target,"r") or die("Error leyendo el XML");

return $this->fp;
}

function close() {
fclose($this->fp);
xml_parser_free($this->parser);
$this->fp = '';
$this->parser = "";
}
}




$debug = 0; # Ponerlo a 1 si queremos depurar el script
$file = $file_xml;

$currentTag = "";
$currentAttribs = "";
$inicio=true;
$enlace="";
$titulo="";
$conta_script=0;

function startElement($parser, $name, $attribs)
{
global $currentTag, $currentAttribs, $titulo, $link, $type;
$currentTag = $name;
$currentAttribs = $attribs;

// Definir el elemento HTML que corresponde con cada token del xml

switch ($name) {
case "name":
while (list ($key, $value) = each ($attribs)) {
echo("+++$key: $valuen");
}
break;
case "url":
while (list ($key, $value) = each ($attribs)) {
echo("+++$key: $valuen");
}
break;
case "type":
while (list ($key, $value) = each ($attribs)) {
echo("+++$key: $valuen");
}
break;
default:
break;
}
}

function endElement($parser, $name)
{
global $currentTag, $titulo, $link, $type;

// tags HTML de salida

/* switch ($name) {
case "name":
echo($value);
break;
case "url":
echo($value);
break;
case "type":
echo($value);
break;
default:
break;
}*/
// vaciamos las variables
$currentTag = "";
$currentAttribs = "";
}

// procesamos los datos entre tags

function characterData($parser, $data)

{
global $currentTag, $titulo, $link, $type;
// añadimos los html al valor actual
switch ($currentTag) {
case "name":
echo "<a href='";
$titulo = $data;
break;
case "url":
echo $data;
//echo "<a href='".$data."'>";
break;
case "type":
$type = $data;
// como es el ultimo parametro en ser leido escribimos los datos y vaciamos las variables
echo "'>".$titulo." <img src='".$path_imgs.$type."'></a>";//."<img src='".$path_imgs.$type."'></a>";
$titulo="";
$url="";
$type="";
break;
default:
break;
}
}



// inicializar parseador
$xmlParser = xml_parser_create();
$caseFold = xml_parser_get_option($xmlParser,
XML_OPTION_CASE_FOLDING);

$targetEncoding = xml_parser_get_option($xmlParser,
XML_OPTION_TARGET_ENCODING);

if ($debug > 0) {
echo("El depurador esta: $debug<br>n");
echo("Case folding esta:
$caseFold<br>n");
echo("El charset es:
$targetEncoding<br>n");
}

// deshabilitar case folding
if ($caseFold == 1) {
xml_parser_set_option($xmlParser,
XML_OPTION_CASE_FOLDING, false);
}

// llamadas a las funciones
xml_set_element_handler(
$xmlParser, "startElement",
"endElement");

xml_set_character_data_handler($xmlParser, "characterData");


# abrir fichero XML
if (!($fp = fopen($file, "r"))) {
die("No se puede leer el archivo xml: $file");
}

# leer y parsear el xml
while ($data = fread($fp, 4096)) {
# manejador de errores
if (!xml_parse($xmlParser, $data, feof($fp))) {
die(sprintf("XML error: %s en la linea %d",
xml_error_string(xml_get_error_code($xmlParser)),
xml_get_current_line_number($xmlParser)));
xml_parser_free($xmlParser);
}
}

# librerar el parseador
xml_parser_free($xmlParser);
?>