[eside-ghost] formulario PHP para añadir datos en XML -- era ( formulario php para subir archivos via FTP )
altern
altern2 en gmail.com
Mie Mar 26 23:15:42 CET 2008
lo he pensado mejor y creo que lo del ftp basado en un formulario no es
buena idea pq van a ser archivos grandes y casi mejor subirlos con un
cliente FTP. Y los que lo vamos a usar el formulario ya sabemos usar FTP.
pero ahora estoy con otro asunto relacionado, la idea es tener un
formulario a traves del que se añaden datos en un archivo XML. La
estructura de datos es asi
<markers>
<marker>
<nombre>"archivo tal"</nombre>
<duracion>"2:30"</duracion>
... etc ...
</marker>
... etc...
</markers>
estoy mirando como añadir datos en el xml pero no consigo encontrar un
ejemplo que haga lo mismo que necesito. Esto es añadir un nuevo marker
al final de los markers. He encontrado como añadir mas entradas a cada
marker y tb como meterlas detras de </markers> pero esto no me sirve. Yo
necesito meter un nuevo marker al final de markers.
Como podreis adivinar es para una web que usa google maps. Hay unos
marcadores señalando localizaciones donde se han grabado sonidos y se
pueden consultar datos sobre los sonidos y escucharlos o descargarlos.
Como somos cada vez mas metiendo sonidos nos da miedo que alguien la lie
y se cargue el formato del archivo XML, que ya ha pasado. Asi que pense
que un formulario evitaba este problema.
No me empapo muy bien del PHP pq estoy acostumbrado a usar Python y se
me hace un poco raro leer la syntasis de php en los ejemplos que
encuentro. Esto es mas o menos el codigo que estoy probando ahora. Casca
pq $markers no tiene un metodo appendChild() al ser un objeto tipo
DOMNodeList
$doc = new DOMDocument();
$doc->load( 'data.xml' );
$doc->formatOutput = true;
$markers = $doc->getElementsByTagName("markers")
$m = $doc->createElement( "marker" );
$lat = $doc->createElement( "nombre" );
$lat->appendChild( $doc->createTextNode( "xxxnombre" ) );
$m->appendChild( $lat );
$markers.appendChild($m); // **Aqui casca!!****
$doc->saveXML();
$doc->save("data.xml")
No estoy seguro de si hay alguna forma de hacer lo que busco
directamente añadiendolo al final o si tengo que rehacer el contenido
desde cero copiando nodo a nodo añadiendo el nuevo y finalmente
sobreescribir el contenido del xml totalmente.
y espero dar por finalizada mi lista de preguntas mensuales con esto ;)
enrike
Javier Allende Astigarraga(e)k dio:
> Yo habría pensado temas de permisos en esa carpeta :S, pero no se me
> ocurre nada, salvo que los ficheros sean excesivamente grandes, pero
> este problema era cuando subias ficheros a pelo al server.
>
> ¿qué permisos tienes en ese directorio?(usuarios,..)
>
> 2008/3/25, altern <altern2 en gmail.com <mailto:altern2 en gmail.com>>:
>
> bueno partiendo de tu codigo he solucionado un par de errores tontos que
> estaba haciendo (me olvide del / final del path) pero me da un error 9 :
>
> CURLE_REMOTE_ACCESS_DENIED (9)
> We were denied access to the resource given in the URL. For FTP, this
> occurs while trying to change to the remote directory.
>
> aqui me pierdo. he mirado los permisos de los directorios de destino y
> los archivos locales y tb intentado con un par de directorios diferentes
> de destino a ver si habia alguna diferencia. de todas me sale el mismo
> error... se os ocurre algo?
>
> gracias
Más información sobre la lista de distribución eside-ghost