Foros del Web » Programando para Internet » PHP »

Acceder a xml

Estas en el tema de Acceder a xml en el foro de PHP en Foros del Web. Hola que tal ,a ver si alguien me puede ayudar,tengo un archivo xml de galerias de imagenes autoactualizable y quisiera saber que hacer para mostrar ...
  #1 (permalink)  
Antiguo 31/05/2005, 17:13
 
Fecha de Ingreso: mayo-2005
Mensajes: 8
Antigüedad: 18 años, 10 meses
Puntos: 0
Acceder a xml

Hola que tal ,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.
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: $value\n");
}
break;
case "url":
while (list ($key, $value) = each ($attribs)) {
echo("+++$key: $value\n");
}
break;
case "type":
while (list ($key, $value) = each ($attribs)) {
echo("+++$key: $value\n");
}
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);
?>

http://pornpics.gratishost.com

Lo que tengo es en archivo xml de galerias que se actualiza diariamente
con galerias nuevas descripcion y todo ese rollo y lo que me gustaria es que la pagina se actualizase sola.

Gracias y saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:31.