Foros del Web » Programando para Internet » PHP »

cómo crear un XML con php?

Estas en el tema de cómo crear un XML con php? en el foro de PHP en Foros del Web. Mi consulta es porque necesito crear mediantes unas input el contenido de un xml, para que actulizar una web, en una input colocar la ruta ...
  #1 (permalink)  
Antiguo 08/05/2007, 15:53
Avatar de AJVEvoluzione  
Fecha de Ingreso: agosto-2004
Ubicación: Buenos Aires
Mensajes: 195
Antigüedad: 19 años, 8 meses
Puntos: 1
cómo crear un XML con php?

Mi consulta es porque necesito crear mediantes unas input el contenido de un xml, para que actulizar una web, en una input colocar la ruta de la foto en otro la descripcion en otro el ancho y en otro el largo y que se puedan colocar infinitos y una vez que finalizamos le apretamos Crear y nos hace el xml tal cual como lo adjunto, me dijeron que lo tengo que hacer con foreach y fwrite; tengo uno para crear un xml pero nose como hacer para que me genere todas las input que le ponga y nose como modificarlo para que me cree este xml. si alguien me puede ayudar.

PHP que crea un archivo xml
Código PHP:
<?
       $trans_tbl 
get_html_translation_table(HTML_ENTITIES);
       foreach(
$trans_tbl as $k => $v)
       {
           
$ttr[$v] = utf8_encode($k);
       }
   
       
$text strtr($text$ttr);
if(isset(
$_POST['dato'])){
$datos '<?xml version="1.0" encoding="UTF-8"?>
<gallery title="Example Title" frameColor="0xFFFFFF" frameWidth="10" imagePadding="20" displayTime="6">
<image>
   <filename>'
$_POST["Nom"] .'</filename>
   <caption>'
$_POST["Des"] .'caption>
   <width>'
$_POST["W"] .'</width>
   <height>'
$_POST["H"] .'</height>
</image>
</gallery>'
;
$archy$_POST["dato"];
$file fopen($archy,"w-");
fwrite($file,utf8_encode($datos));fclose($file);
header("Location: oksend.htm"); 
}
else
{
echo 
"output=no se han recibido los datos";
}
?>

XML a crear
Código PHP:
<?xml version="1.0" encoding="UTF-8"?>
<gallery title="Example Title" frameColor="0xFFFFFF" frameWidth="10" imagePadding="20" displayTime="6">
<image>
   <filename>example.jpg</filename>
   <caption>foto 10001.</caption>
   <width>640</width>
   <height>480</height>
</image>
<image>
   <filename>example.jpg</filename>
   <caption>foto 10002.</caption>
   <width>640</width>
   <height>480</height>
</image>
<image>
   <filename>example.jpg</filename>
   <caption>foto 10003.</caption>
   <width>640</width>
   <height>480</height>
</image>
<image>
   <filename>example.jpg</filename>
   <caption>foto 10004.</caption>
   <width>640</width>
   <height>480</height>
</image>
</gallery>
  #2 (permalink)  
Antiguo 09/05/2007, 14:27
Avatar de AJVEvoluzione  
Fecha de Ingreso: agosto-2004
Ubicación: Buenos Aires
Mensajes: 195
Antigüedad: 19 años, 8 meses
Puntos: 1
Re: cómo crear un XML con php?

alguien que me ayude con esto? ;(
  #3 (permalink)  
Antiguo 09/05/2007, 14:39
Avatar de el cirujano  
Fecha de Ingreso: mayo-2003
Ubicación: Frente al PC
Mensajes: 609
Antigüedad: 20 años, 11 meses
Puntos: 3
Re: cómo crear un XML con php?

me imagino que esto es lo que se debe crear repetitivamente:
Código PHP:
<image>
   <
filename>'. $_POST["Nom"] .'</filename>
   <
caption>'. $_POST["Des"] .'caption>
   <
width>'. $_POST["W"] .'</width>
   <
height>'. $_POST["H"] .'</height>
</
image
bueno apliquemos aqui algo que se pueda decir como logica....

Código PHP:
<?
       $trans_tbl 
get_html_translation_table(HTML_ENTITIES);
       foreach(
$trans_tbl as $k => $v)
       {
           
$ttr[$v] = utf8_encode($k);
       }
   
       
$text strtr($text$ttr);
if(isset(
$_POST['dato'])){
$datos '<?xml version="1.0" encoding="UTF-8"?>
<gallery title="Example Title" frameColor="0xFFFFFF" frameWidth="10" imagePadding="20" displayTime="6">'
;

$cantidad "X"//numero de imagenes

for ($i$i<$cantidad$i++)
{
$datos .= '<image>
   <filename>'
$_POST["Nom"][$i] .'</filename>
   <caption>'
$_POST["Des"][$i] .'caption>
   <width>'
$_POST["W"][$i] .'</width>
   <height>'
$_POST["H"][$i] .'</height>
</image>'
;
}

$datos .= '</gallery>';
$archy$_POST["dato"];
$file fopen($archy,"w-");
fwrite($file,utf8_encode($datos));fclose($file);
header("Location: oksend.htm"); 
}
else
{
echo 
"output=no se han recibido los datos";
}
?>
claro esta, no lo he probado, no se cuales son los campos y lo acabo de hacer, pero por ahi va la solucion...

Saludos
__________________
CSS2 + AJAX + PHP + MySQL, una mezcla sin competencia!!!!!!
  #4 (permalink)  
Antiguo 09/05/2007, 23:03
Avatar de AJVEvoluzione  
Fecha de Ingreso: agosto-2004
Ubicación: Buenos Aires
Mensajes: 195
Antigüedad: 19 años, 8 meses
Puntos: 1
Re: cómo crear un XML con php?

y como hace para colocar distintos datos dependiendo de la cantidad? osea como hago para cargalos con un form? osea cada foto se llama diferente, tiene un tamaño y descripcion distinta a la anterior, se entiende no?
  #5 (permalink)  
Antiguo 10/05/2007, 07:05
Avatar de el cirujano  
Fecha de Ingreso: mayo-2003
Ubicación: Frente al PC
Mensajes: 609
Antigüedad: 20 años, 11 meses
Puntos: 3
Re: cómo crear un XML con php?

ES QUE EL FORMULARIO ES NORMAL COMO LO QUIERAS USAR, LO UNICO QUE CUANDO VAYAS A HACER EL XML DEPENDIENDO DE LOS DATOS QUE HAYAS LLENADO SE TE CREARAN....

EN EL APARTADO [$i] se encargara de cambiar los datos a medida que vaya leyendo....

osea..

[$i] = nombreA
da una vuelta
[$i] = nombreB
da una vuelta
[$i] = nombreN...
__________________
CSS2 + AJAX + PHP + MySQL, una mezcla sin competencia!!!!!!
  #6 (permalink)  
Antiguo 10/05/2007, 07:52
hq1
 
Fecha de Ingreso: abril-2007
Ubicación: Madrid, España
Mensajes: 107
Antigüedad: 17 años
Puntos: 0
Re: cómo crear un XML con php?

Y si no sabes la cantidad exacta de fotos, en vez de inicializar $cantidad y poner un for, tendrías que poner un while con la condición oportuna que te permita saber que no hay más imágenes.
  #7 (permalink)  
Antiguo 10/05/2007, 08:02
Avatar de el cirujano  
Fecha de Ingreso: mayo-2003
Ubicación: Frente al PC
Mensajes: 609
Antigüedad: 20 años, 11 meses
Puntos: 3
Re: cómo crear un XML con php?

hg1 en cuanto a tu respuesta creo que no has leido bien.... el envia las imagenes por un formulario el cual contiene N numeros de input`s, ahora si tiene para enviar 5 input´s no podras poner $cantidad = 3; porque perderias dos...

hay dos formas de solucionar esto:

a.- $cantidad = x; (cantidad asignada por el usuario)
b.- $cantidad = count($_POST['datos']); (aqui debe hacer un tipo de validacion para saber cuantos registros llegaron llenos y cuantos llegaron en blanco...)
__________________
CSS2 + AJAX + PHP + MySQL, una mezcla sin competencia!!!!!!
  #8 (permalink)  
Antiguo 10/05/2007, 08:06
hq1
 
Fecha de Ingreso: abril-2007
Ubicación: Madrid, España
Mensajes: 107
Antigüedad: 17 años
Puntos: 0
Re: cómo crear un XML con php?

Si , aunque es posible que no me haya expresado bien. Me refería a esa segunda opción, el count(...), es que acabo de comer...
  #9 (permalink)  
Antiguo 10/05/2007, 12:44
Avatar de AJVEvoluzione  
Fecha de Ingreso: agosto-2004
Ubicación: Buenos Aires
Mensajes: 195
Antigüedad: 19 años, 8 meses
Puntos: 1
Re: cómo crear un XML con php?

Sigo sin entender como hacer el formulario para que el php reciba los distintos datos que van a formar el xml tendria que poner ej: 5 inputs con el name Nom 5 con el name Des 5 inputs con el name W y finalmente 5 inputs con el name H si quiero guardar 5 fotos? no entiendo el proceso para ir haciendo el xml, como seria el formularioooooo?
  #10 (permalink)  
Antiguo 10/05/2007, 12:48
Avatar de el cirujano  
Fecha de Ingreso: mayo-2003
Ubicación: Frente al PC
Mensajes: 609
Antigüedad: 20 años, 11 meses
Puntos: 3
Re: cómo crear un XML con php?

un formulario normalisimo... solo con una variante

Código PHP:
<input type="text" name="Nom[]"
el simbolo [] tiene que ir para que cuando se realice el bucle con el FOR el operador [$i] vaya tomando cada valor que envias de cada uno de ellos...

seria mas facil explicarte si colocaras tu formulario
__________________
CSS2 + AJAX + PHP + MySQL, una mezcla sin competencia!!!!!!
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 18:07.