Comunidad de diseño web y desarrollo en internet online

escribir un XML con PHP?

Citar            
MensajeEscrito el 21 Dic 2006 05:05 am
Hola a Todos:

Les vengo a pedir su ayuda! :shock:

tengo un reproductor mp3 en flash que carga
el ARTISTA - TITULO DEL TEMA - LA DIRECCION DEL MP3.

pero mi problema es que tengo que hacer el xml.
uno por uno... y no se....:zzz: :zzz: es un poco :zzz: ... ya saben...

entonces pense en hacerlo con PHP.
osea incluir los datos desde un formulario para que se almacenen en el xml.

el unico problema esque no tengo idea como hacerlo.

si ustedes me pudiesen ayudar siquiera a comenzar
les estaria muy agradesido ^^ .

este el contenido del xml a generar.

playlist.xml

Código :

<playlist version="1" xmlns="..">
   <trackList>

      <track>
         <title>Homeland</title>
         <creator>Postman</creator>
         <location>temasmp3/song1.mp3</location>
      </track>
   </trackList>
</playlist>



Muchisimas gracias tan solo por leer

Por egoman

61 de clabLevel



Genero:Masculino  

Concepción - Chile!

firefox
Citar            
MensajeEscrito el 21 Dic 2006 10:15 pm
Pdria ser algo asi

Código :

<?PHP
   function track($title, $creator, $location){
      return "<track title='$title' creator='$creator'><![CDATA[$location]]></track>";
   }
   $xml_open = '<playlist><trackList>';
   $xml_close = '</trackList></playlist>';
   
   echo $xml_open.track("foo", "Nadie", "/foo.mp3").$xml_close;
?>

Despues lo metes en un blucle y ya tienes el xml xD :P

Saludos!!

Por Cep

BOFH

1509 de clabLevel

9 tutoriales

1 ejemplo

Genero:Masculino   REC Bastard Operators From Hell

Web Developer

firefox
Citar            
MensajeEscrito el 22 Dic 2006 04:04 am
Intente con este ese php

pero ignoro como es eso del bucle :oops: :oops: :oops:
lo siento pero soy nuevo y me encantaria saber

y ... como se genereria el xml con ese php? :oops: :oops:

Por egoman

61 de clabLevel



Genero:Masculino  

Concepción - Chile!

firefox
Citar            
MensajeEscrito el 22 Dic 2006 09:35 am
Pues un bucle es la forma de repetir el mismo código varias veces, el código que te pasó cep crearía el xml de 1 canción, lo metes en un bucle que te recorra todas las canciones y listo.

Por Yranac

421 de clabLevel



Genero:Masculino  

Lugo, Galicia

firefox
Citar            
MensajeEscrito el 23 Dic 2006 07:20 pm
ok esto es lo que he conseguido

el problema ahora es que me sale como temas una direccion "." y otra ".."

como lo puedo sacar??


Código :

<?php
//elijo la carpeta a examinar
$folder="temasmp3/";
$directorio=dir($folder);
$xml_ini = '&lt;playlist version="1" xmlns="http://xspf.org/ns/0/"&gt;<br>&lt;trackList&gt;<br>';
$xml_fini = '&lt;/trackList&gt;<br>&lt;/playlist&gt;';
//escribo el inicio del xml
echo $xml_ini;
//busco los mp3 y escribo los nombres con su respestivo directorio[pero no el autor porque no se como]
while ($tema = $directorio->read())
{ 
echo '&lt;track&gt;<br>';
echo '&lt;title&gt;'.$tema.'&lt;/title&gt;<br>';
echo '&lt;creator&gt;'.'&lt;/creator&gt;<br>';
echo '&lt;location&gt;'.$folder.$tema.'&lt;/location&gt;<br>';
echo '&lt;/track&gt;<br>';
}
//escribo el fin del xml
echo $xml_fini;
$directorio->close(); 
?>


talvez el codigo es un poco bruto pero me esta resultando ^^ :roll:

Por egoman

61 de clabLevel



Genero:Masculino  

Concepción - Chile!

firefox
Citar            
MensajeEscrito el 24 Dic 2006 12:20 am
<?php // crear el xml;
$folder="temasmp3/";
$directorio=dir($folder);
$xml_ini = '&lt;playlist version="1" xmlns="http://xspf.org/ns/0/"&gt;<br>&lt;trackList&gt;<br>';
$xml_fini = '&lt;/trackList&gt;<br>&lt;/playlist&gt;';
//escribo el comenso del xml que almacene en la variable $xml_ini
echo $xml_ini;
$i=1;
while ($tema = $directorio->read())
{
$i=$i+1;
if ($i>=4){


echo '&lt;track&gt;<br>';
echo '&lt;title&gt;'.$tema.'&lt;/title&gt;<br>';
echo '&lt;creator&gt;'.'&lt;/creator&gt;<br>';
echo '&lt;location&gt;'.'temasmp3/'.$tema.'&lt;/location&gt;<br>';
echo '&lt;/track&gt;<br>';
}
}
//escribo el fin del xml que almacene en la variable $xml_fini
echo $xml_fini;
$directorio->close();
?>
:D :D ya no me salen los puntos!!

pero ahora?

este xml que me aparece en la PHP, ¿lo puedo guardar en un xml?

Por egoman

61 de clabLevel



Genero:Masculino  

Concepción - Chile!

firefox
Citar            
MensajeEscrito el 24 Dic 2006 02:50 am

egoman escribió:

ro ahora?

este xml que me aparece en la PHP, ¿lo puedo guardar en un xml?
Ctrl+C y Ctrl+V en Notepad.

Por Alan

470 de clabLevel

2 tutoriales

 

firefox
Citar            
MensajeEscrito el 24 Dic 2006 04:53 am
a si ...
pero me referia a automatizarlo

Por egoman

61 de clabLevel



Genero:Masculino  

Concepción - Chile!

firefox
Citar            
MensajeEscrito el 24 Dic 2006 11:30 am

Por dmvalverde

150 de clabLevel



Genero:Masculino  

Extremadura

firefox
Citar            
MensajeEscrito el 24 Dic 2006 12:48 pm

egoman escribió:

ok esto es lo que he conseguido

el problema ahora es que me sale como temas una direccion "." y otra ".."

como lo puedo sacar??

Prueba así

Código :

<?php
//elijo la carpeta a examinar
$folder="temasmp3/";
$directorio=dir($folder);
$xml_ini = '&lt;playlist version="1" xmlns="http://xspf.org/ns/0/"&gt;<br>&lt;trackList&gt;<br>';
$xml_fini = '&lt;/trackList&gt;<br>&lt;/playlist&gt;';
//escribo el inicio del xml
echo $xml_ini;
//busco los mp3 y escribo los nombres con su respestivo directorio[pero no el autor porque no se como]
while ($tema = $directorio->read())
{ 
   if($tema!="." && $tema!=".."){
      echo '&lt;track&gt;<br>';
      echo '&lt;title&gt;'.$tema.'&lt;/title&gt;<br>';
      echo '&lt;creator&gt;'.'&lt;/creator&gt;<br>';
      echo '&lt;location&gt;'.$folder.$tema.'&lt;/location&gt;<br>';
      echo '&lt;/track&gt;<br>';
   }
}
//escribo el fin del xml
echo $xml_fini;
$directorio->close(); 
?>

Por Yranac

421 de clabLevel



Genero:Masculino  

Lugo, Galicia

firefox
Citar            
MensajeEscrito el 24 Dic 2006 02:49 pm
Yranac:
Lo de los puntos lo soluciones ! ^^
lo deje arriba
le puse in IF

dmvalverde:

Ya probe con esos pero me lanza errores.
estoy intentado dejando todo en un textarea de un formulario y lo consegui
pero no se como enviarlos a un .xml o .txt con el boton submit
:twisted:

Por egoman

61 de clabLevel



Genero:Masculino  

Concepción - Chile!

firefox
Citar            
MensajeEscrito el 25 Dic 2006 08:27 pm

egoman escribió:

Yranac:
Lo de los puntos lo soluciones ! ^^
lo deje arriba
le puse in IF

dmvalverde:

Ya probe con esos pero me lanza errores.
estoy intentado dejando todo en un textarea de un formulario y lo consegui
pero no se como enviarlos a un .xml o .txt con el boton submit
:twisted:
Pues entonces así: (no lo probé, lo hice de memoria...)

Código :

<?php
//elijo la carpeta a examinar
$folder="temasmp3/";
$directorio=dir($folder);
$xml_ini = '&lt;playlist version="1" xmlns="http://xspf.org/ns/0/"&gt;<br>&lt;trackList&gt;<br>';

//escribo el inicio del xml
$fich=$xml_ini;
//busco los mp3 y escribo los nombres con su respestivo directorio[pero no el autor porque no se como]
while ($tema = $directorio->read())
{ 
   if($tema!="." && $tema!=".."){
      $fich.= '&lt;track&gt;<br>';
      $fich.='&lt;title&gt;'.$tema.'&lt;/title&gt;<br>';
      $fich.='&lt;creator&gt;'.'&lt;/creator&gt;<br>';
      $fich.='&lt;location&gt;'.$folder.$tema.'&lt;/location&gt;<br>';
      $fich.='&lt;/track&gt;<br>';
   }
}
//escribo el fin del xml
$xml_fini = '&lt;/trackList&gt;<br>&lt;/playlist&gt;';
$fich=$xml_fini;

$myFile = "datos.xml";
$fh = fopen($myFile, 'r') or die("Error!!");
fwrite($fh, $fich);
fclose($fh);

$directorio->close(); 
?>
El modo en que quieras abrir el fichero lo puedes seleccionar [rul=http://es2.php.net/manual/es/function.fopen.php]aquí[/url]

Si no dinos los errores.....

Por Yranac

421 de clabLevel



Genero:Masculino  

Lugo, Galicia

firefox
Citar            
MensajeEscrito el 25 Dic 2006 09:39 pm
primero me dio un error
pero le cambie la ultima "r" a "w+"

y me creo el archivo.xml

pero solo lo lleno con esto:

&lt;/trackList&gt;<br>&lt;/playlist&gt;
y creo que es porque sobre escribio $fich y solo dejo el cierre del xml


//Edit

Ya lo logre gracias!! ^^
ademas lo entendi todo!!


ok es asi

Código :

<?php
//elijo la carpeta a examinar
$folder="temasmp3/";
$directorio=dir($folder);

// defino el comenzo del xml
$xml_ini = '<playlist version="1" xmlns="http://xspf.org/ns/0/"><trackList>';

//nombro el archivo xml a modificar
$myFile = "datos.xml";

//abro mi archivo en modo "w" para sobreescribir el archivo generado cada vez
$fh = fopen($myFile, 'w') or die("Error!!");

//escribo la primera parte en mi archivo
fwrite($fh, $xml_ini);

//cierro el primer modo de escritura
fclose($fh);

//**busco los mp3 y escribo los nombres con su respestivo directorio

//unna variable para sacar esos puntos que aparecen como nombres de archivos al xml "." ".."
$i=1;

//abro denuevo el archivo en modo "a" para escribir al final de este
$fhr = fopen($myFile, 'a') or die("Error!!");

//leo el directorio con los temas mp3
while ($tema = $directorio->read())
{ 

//le sumo 1 a la variable $i para que no nombre los dos primeros ficheros "." ".."
$i=$i+1;
if ($i>=4){

//defino la variable contenido que sera todo el xml 
      $contenido = '<track><title>'.$tema.'</title><creator></creator><location>'.$folder.$tema.'</location></track>';
 
//escribo el xml con sus respectivas etiquetas 
//y como esta en modo "a" las ira escribiendo una bajo la otra
 fwrite($fhr, $contenido);
}

}
//cierro la escritura
fclose($fhr);

//abro el xml nuevamente en modo "a"
$fhc = fopen($myFile, 'a') or die("Error!!");

//defino el cierre del xml
$xml_fini = '</trackList></playlist>';

//lo escribo en el xml
fwrite($fhc, $xml_fini);

//cierro el xml
fclose($fhc);

//cierro el directorio
$directorio->close(); 
?>


porfin!!!!

Por egoman

61 de clabLevel



Genero:Masculino  

Concepción - Chile!

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.