Foros del Web » Programando para Internet » PHP »

Crear archivo xml con php

Estas en el tema de Crear archivo xml con php en el foro de PHP en Foros del Web. Hola muchachos, tengo una consulta para hacerles... Estoy haciendo una pagina dinamica en flash, la cual debe manejar una base de datos MySQL y el ...
  #1 (permalink)  
Antiguo 09/03/2008, 20:42
Avatar de Alesius  
Fecha de Ingreso: marzo-2008
Mensajes: 87
Antigüedad: 16 años, 1 mes
Puntos: 1
Crear archivo xml con php

Hola muchachos, tengo una consulta para hacerles...

Estoy haciendo una pagina dinamica en flash, la cual debe manejar una base de datos MySQL y el enlace entre las dos es PHP. Pero el problema que tengo es que no puedo enviar los datos tomados desde MySQL y mandarlos a flash desde PHP.

Me han aconsejado que utilice XML, pero la verdad que no tengo ni la mas palida idea de como se hace, he visto en algunos foros y he entendido algo...

Mi base de datos tiene 3 campos.

"id" que se genera solo
"nombre"
"comentarios"

y necesito un script en PHP que genere un archivo XML del recordset que levante de la base de datos MySQL, para despues poder levantarlo desde flash (en esta ultima parte no tengo problemas).

Tambien quiero que cada vez que hago una consulta genere el archivo XML de nuevo y que no lo modifique...

Gracias de antemano por la ayuda....

Saludos.
  #2 (permalink)  
Antiguo 10/03/2008, 05:07
Avatar de Alesius  
Fecha de Ingreso: marzo-2008
Mensajes: 87
Antigüedad: 16 años, 1 mes
Puntos: 1
Re: Crear archivo xml con php

Por favor que alguien me ayudeeee!!!! gracias!!!
  #3 (permalink)  
Antiguo 10/03/2008, 06:16
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 6 meses
Puntos: 25
Re: Crear archivo xml con php

si lo que deseas es generar XML con php usa SimpleXml.
  #4 (permalink)  
Antiguo 10/03/2008, 06:37
 
Fecha de Ingreso: febrero-2007
Ubicación: Jaén
Mensajes: 40
Antigüedad: 17 años, 2 meses
Puntos: 1
Re: Crear archivo xml con php

Hola Alesius.

Básicamente lo que tienes que hacer es crear un archivo con las cabeceras correspondientes a xml.

Para ello crea una función en php que llames cada vez que quieras crear el archivo xml.

Sería así.
Código PHP:

function creaXML{
/*Seleccionamos los datos de la tabla correspondiente*/

$result=mysql_query("SELECT id, nombre, comentarios FROM miTabla");

/*la variable $fp guardará el identificador del fichero con el que estamos trabajando. El fichero miXML.xml lo creará en la misma ruta donde se ejecute el script de php.*/

if(!$fp=fopen("miXML.xml","w+")) echo "No se ha podido abrir el fichero";
else
{
    /*Escribo la cabecera del xml
    Véase que \r (retorno de carro) en octal es 015 y \n (nueva linea) en octal es 012*/

    fwrite($fp,"<?xml version="1.0\" encoding=\"ISO-8859-1\"?>\015\012"))
    while(
$row=mysql_fetch_array($result))
    {
        
/*estructura del nodo*/

        
fwrite($fp,"<registro>\015\012
                                <id>"
.$row[id]."</id>\015\012
                                <nombre>"
.$row[nombre]."</nombre>\015\012
                                <comentarios>"
.$row[comentarios]."</comentarios>\015\012
                          </registro>"
);
    }
    if(!
fclose($fp)) echo "No se ha podido cerrar el fichero";
}
Puede ser que luego de creado el fichero tengas que cambiar los permisos para que lo puedas leer desde flash.
Sería:
Código PHP:
chmod("miXML.xml",0755); 
Si acaso te quedan dudas de que hace cada función consulta la documentación sobre fopen, fclose y fwrite.
Espero haberte sido de ayuda y que funcione. Saludos.
  #5 (permalink)  
Antiguo 10/03/2008, 06:59
Avatar de Alesius  
Fecha de Ingreso: marzo-2008
Mensajes: 87
Antigüedad: 16 años, 1 mes
Puntos: 1
Re: Crear archivo xml con php

Hola kirkem, te agradezco muchisimo la ayuda, ahora lo voy a probar, pero exactamente lo que estaba buscando....

GRACIAS NUEVAMENTE...

Luego te digo como salio todo..jejejee... gracias.
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 12:57.