Modifications XML + PHP est-ce possible?
bonolebo
Messages postés
30
Date d'inscription
Statut
Membre
Dernière intervention
-
bonolebo Messages postés 30 Date d'inscription Statut Membre Dernière intervention -
bonolebo Messages postés 30 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je suis entrain de developper un site internet, dans lequel il y aura une mise a jour à peu près toutes les semaines. C'est à dire qu'un administrateur viendra ajouter une nouvelle (avec un titre et un contenu), accompagnés de photos en rapport avec la nouvelle.
Les photos seront représentés sous forme d'album (j'ai utilisé cet album la :
http://www.jean-mi.com/JMGalerie/ )
Donc dans les scripts de cet album, il y a un fichier XML dans lequel sont décrit les noms et adresses des photos
exemple :
<album id="photos_diapo">
<photo title="Mustang" src="files/photos_diapo/DeathRace.jpg" />
<photo title="Hayastan" src="files/photos_diapo/embleme.jpg" />
<photo title="Iron man" src="files/photos_diapo/ironMan.jpg" />
</album>
J'aimerai pouvoir modifier ce script, mais à travers un script PHP. Je m'explique :
l'administrateur (qui ne connait rien à l'informatique) ajoute sa nouvelle, puis ajoute les photos (avec un bouton "parcourir"). Il faudrait que ce fichier XML soit modifié automatiquement, de manière à ajouter :
<album id="nouvelAlbum">
<photo title="nouvellePhoto" src="files/photos_diapo/nouvellePhoto.jpg" />
</album>
est-ce possible avec du PHP?
merci d'avance!
je suis entrain de developper un site internet, dans lequel il y aura une mise a jour à peu près toutes les semaines. C'est à dire qu'un administrateur viendra ajouter une nouvelle (avec un titre et un contenu), accompagnés de photos en rapport avec la nouvelle.
Les photos seront représentés sous forme d'album (j'ai utilisé cet album la :
http://www.jean-mi.com/JMGalerie/ )
Donc dans les scripts de cet album, il y a un fichier XML dans lequel sont décrit les noms et adresses des photos
exemple :
<album id="photos_diapo">
<photo title="Mustang" src="files/photos_diapo/DeathRace.jpg" />
<photo title="Hayastan" src="files/photos_diapo/embleme.jpg" />
<photo title="Iron man" src="files/photos_diapo/ironMan.jpg" />
</album>
J'aimerai pouvoir modifier ce script, mais à travers un script PHP. Je m'explique :
l'administrateur (qui ne connait rien à l'informatique) ajoute sa nouvelle, puis ajoute les photos (avec un bouton "parcourir"). Il faudrait que ce fichier XML soit modifié automatiquement, de manière à ajouter :
<album id="nouvelAlbum">
<photo title="nouvellePhoto" src="files/photos_diapo/nouvellePhoto.jpg" />
</album>
est-ce possible avec du PHP?
merci d'avance!
A voir également:
- Modifications XML + PHP est-ce possible?
- Suivi des modifications word - Guide
- Xml download - Télécharger - Édition & Programmation
- Easy php - Télécharger - Divers Web & Internet
- Office xml handler - Télécharger - Traitement de texte
- Driveimage xml - Télécharger - Sauvegarde
11 réponses
Je détourne un peu le langage utilisé, et j'espère que cela te servira.
Moi a ta place je ferais :
-> un système d'upload
-> un xml généré par php
-> un script Javascript avec XMLHttpRequest, qui affiche les images avec un "div" et la méthode .InnerHTML
Si certains points te paraissent flou, je t'en pris.
Moi a ta place je ferais :
-> un système d'upload
-> un xml généré par php
-> un script Javascript avec XMLHttpRequest, qui affiche les images avec un "div" et la méthode .InnerHTML
Si certains points te paraissent flou, je t'en pris.
merci Blocks!
alors pour ce qui est des points flou ^^ :
-> un système d'upload : oui, j'en ai crée un, les photos sont ajouté dans un dossier (le dossier est crée en meme temps dailleur, avec Mkdir, je pense, kje me souvien plus :P)
-> un xml généré par php : C'est là que je peche et que je demande de l'aide, car je ne sais pas faire
-> un script Javascript avec XMLHttpRequest, qui affiche les images avec un "div" et la méthode .InnerHTML : kézako??
Merci
alors pour ce qui est des points flou ^^ :
-> un système d'upload : oui, j'en ai crée un, les photos sont ajouté dans un dossier (le dossier est crée en meme temps dailleur, avec Mkdir, je pense, kje me souvien plus :P)
-> un xml généré par php : C'est là que je peche et que je demande de l'aide, car je ne sais pas faire
-> un script Javascript avec XMLHttpRequest, qui affiche les images avec un "div" et la méthode .InnerHTML : kézako??
Merci
merci Blocks!
alors pour ce qui est des points flou ^^ :
-> un système d'upload : oui, j'en ai crée un, les photos sont ajouté dans un dossier (le dossier est crée en meme temps dailleur, avec Mkdir, je pense, kje me souvien plus :P)
-> un xml généré par php : C'est là que je peche et que je demande de l'aide, car je ne sais pas faire
-> un script Javascript avec XMLHttpRequest, qui affiche les images avec un "div" et la méthode .InnerHTML : kézako??
Merci
alors pour ce qui est des points flou ^^ :
-> un système d'upload : oui, j'en ai crée un, les photos sont ajouté dans un dossier (le dossier est crée en meme temps dailleur, avec Mkdir, je pense, kje me souvien plus :P)
-> un xml généré par php : C'est là que je peche et que je demande de l'aide, car je ne sais pas faire
-> un script Javascript avec XMLHttpRequest, qui affiche les images avec un "div" et la méthode .InnerHTML : kézako??
Merci
Okay, so :
-> un xml généré par php : C'est là que je peche et que je demande de l'aide, car je ne sais pas faire
//Je ne te fais pas perdre de temps, voici un script php qui génère du xml le plus simplement du monde
// source : https://openclassrooms.com/fr/courses/245710-ajax-et-lechange-de-donnees-en-javascript/244798-lobjet-xmlhttprequest
// nommé blabla.php
<?php
header("Content-Type: text/xml");
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
echo "<album>";
mysql_connect($hote, $login, $mdp);
mysql_select_db($bdd);
$query = mysql_query("SELECT * FROM images");
while ($back = mysql_fetch_assoc($query)) {
echo "<photo title=\"" . $back["nom"] . "\" src=\"" . $back["lien"] . "\" />";
}
}
echo "</album>";
?>
Normalement, c'est correct
-> un script Javascript avec XMLHttpRequest, qui affiche les images avec un "div" et la méthode .InnerHTML : kézako??
// source : idem
// dans ta page html
function getXMLHttpRequest() {
var xhr = null;
if (window.XMLHttpRequest || window.ActiveXObject) {
if (window.ActiveXObject) {
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
} else {
xhr = new XMLHttpRequest();
}
} else {
alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");
return null;
}
return xhr;
}
function request(t) {
var xhr = getXMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
readData(xhr.responseXML);
}
};
xhr.open("GET", "blabla.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send(null);
}
function readData(oData) {
var nodes = oData.getElementsByTagName("photo");
var oSelect = document.getElementById("softwaresSelect");
var oOption, oInner;
oSelect.innerHTML = "";
for (var i=0, c=nodes.length; i<c; i++) {
alert(nodes[i].getAttribute("nom"));
alert(nodes[i].getAttribute("lien"));
}
}
//-->
</script>
Ca devrait être pas mal... Note : les alert(), c'est pour te montrer que tu as récupéré tes valeurs. Après, tu en fait ce que tu veux. Je suppose que tu dois pouvoir les envoyer a ta galerie en Javascript.
Ouf...
// Ca fait peur sans les tabulations :\
-> un xml généré par php : C'est là que je peche et que je demande de l'aide, car je ne sais pas faire
//Je ne te fais pas perdre de temps, voici un script php qui génère du xml le plus simplement du monde
// source : https://openclassrooms.com/fr/courses/245710-ajax-et-lechange-de-donnees-en-javascript/244798-lobjet-xmlhttprequest
// nommé blabla.php
<?php
header("Content-Type: text/xml");
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
echo "<album>";
mysql_connect($hote, $login, $mdp);
mysql_select_db($bdd);
$query = mysql_query("SELECT * FROM images");
while ($back = mysql_fetch_assoc($query)) {
echo "<photo title=\"" . $back["nom"] . "\" src=\"" . $back["lien"] . "\" />";
}
}
echo "</album>";
?>
Normalement, c'est correct
-> un script Javascript avec XMLHttpRequest, qui affiche les images avec un "div" et la méthode .InnerHTML : kézako??
// source : idem
// dans ta page html
function getXMLHttpRequest() {
var xhr = null;
if (window.XMLHttpRequest || window.ActiveXObject) {
if (window.ActiveXObject) {
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
} else {
xhr = new XMLHttpRequest();
}
} else {
alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");
return null;
}
return xhr;
}
function request(t) {
var xhr = getXMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
readData(xhr.responseXML);
}
};
xhr.open("GET", "blabla.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send(null);
}
function readData(oData) {
var nodes = oData.getElementsByTagName("photo");
var oSelect = document.getElementById("softwaresSelect");
var oOption, oInner;
oSelect.innerHTML = "";
for (var i=0, c=nodes.length; i<c; i++) {
alert(nodes[i].getAttribute("nom"));
alert(nodes[i].getAttribute("lien"));
}
}
//-->
</script>
Ca devrait être pas mal... Note : les alert(), c'est pour te montrer que tu as récupéré tes valeurs. Après, tu en fait ce que tu veux. Je suppose que tu dois pouvoir les envoyer a ta galerie en Javascript.
Ouf...
// Ca fait peur sans les tabulations :\
je viens de tripoter un peu ton code, c'est du javascript et...j'y connais riiien ^^'
Enfait je vois qu'il y a un SELECT, mais mes images ne sont pas referencées dans une base de donnnées, je les upload directement sur le serveur.Et elles sont donc mises dans un dossier tout bete.
Donc enfait, dans le principe, il faudrait que le script PHP :
-recupere les noms des photos
-calcul le nombre de photo
-ajoute ou crée un fichier XML ressemblant à ceci :
<album id="photos_diapo">
<photo title="Mustang" src="files/photos_diapo/DeathRace.jpg" />
<photo title="Hayastan" src="files/photos_diapo/embleme.jpg" />
<photo title="Iron man" src="files/photos_diapo/ironMan.jpg" />
</album>
-et donc crée le nombre de ligne egal au nombre de photo dans le dossier
Je pense que c'est ce qu'il y aurait de plus pratique
Merci encore!
Enfait je vois qu'il y a un SELECT, mais mes images ne sont pas referencées dans une base de donnnées, je les upload directement sur le serveur.Et elles sont donc mises dans un dossier tout bete.
Donc enfait, dans le principe, il faudrait que le script PHP :
-recupere les noms des photos
-calcul le nombre de photo
-ajoute ou crée un fichier XML ressemblant à ceci :
<album id="photos_diapo">
<photo title="Mustang" src="files/photos_diapo/DeathRace.jpg" />
<photo title="Hayastan" src="files/photos_diapo/embleme.jpg" />
<photo title="Iron man" src="files/photos_diapo/ironMan.jpg" />
</album>
-et donc crée le nombre de ligne egal au nombre de photo dans le dossier
Je pense que c'est ce qu'il y aurait de plus pratique
Merci encore!
#####################################################
### J'avais fait quelques fautes et oublis, c'est plus correct comme ca : ###
#####################################################
-> un xml généré par php : C'est là que je peche et que je demande de l'aide, car je ne sais pas faire
//Je ne te fais pas perdre de temps, voici un script php qui génère du xml le plus simplement du monde
// source : https://openclassrooms.com/fr/courses/245710-ajax-et-lechange-de-donnees-en-javascript/244798-lobjet-xmlhttprequest
// nommé blabla.php
<?php
header("Content-Type: text/xml");
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
echo "<album>";
mysql_connect($hote, $login, $mdp);
mysql_select_db($bdd);
$query = mysql_query("SELECT * FROM images");
while ($back = mysql_fetch_assoc($query)) {
echo "<photo title=\"" . $back["nom"] . "\" src=\"" . $back["lien"] . "\" />";
}
}
echo "</album>";
?>
Normalement, c'est correct
-> un script Javascript avec XMLHttpRequest, qui affiche les images avec un "div" et la méthode .InnerHTML : kézako??
// source : idem
// dans ta page html
function getXMLHttpRequest() {
var xhr = null;
if (window.XMLHttpRequest || window.ActiveXObject) {
if (window.ActiveXObject) {
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
} else {
xhr = new XMLHttpRequest();
}
} else {
alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");
return null;
}
return xhr;
}
function request() {
var xhr = getXMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
readData(xhr.responseXML);
}
};
xhr.open("GET", "blabla.php", true);
xhr.send(null);
}
function readData(oData) {
var nodes = oData.getElementsByTagName("photo");
oSelect.innerHTML = "";
for (var i=0, c=nodes.length; i<c; i++) {
alert(nodes[i].getAttribute("nom"));
alert(nodes[i].getAttribute("lien"));
}
}
request();
//-->
</script>
Ca devrait être pas mal... Note : les alert(), c'est pour te montrer que tu as récupéré tes valeurs. Après, tu en fait ce que tu veux. Je suppose que tu dois pouvoir les envoyer a ta galerie en Javascript.
Ouf...
// Ca fait peur sans les tabulations :\
### J'avais fait quelques fautes et oublis, c'est plus correct comme ca : ###
#####################################################
-> un xml généré par php : C'est là que je peche et que je demande de l'aide, car je ne sais pas faire
//Je ne te fais pas perdre de temps, voici un script php qui génère du xml le plus simplement du monde
// source : https://openclassrooms.com/fr/courses/245710-ajax-et-lechange-de-donnees-en-javascript/244798-lobjet-xmlhttprequest
// nommé blabla.php
<?php
header("Content-Type: text/xml");
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
echo "<album>";
mysql_connect($hote, $login, $mdp);
mysql_select_db($bdd);
$query = mysql_query("SELECT * FROM images");
while ($back = mysql_fetch_assoc($query)) {
echo "<photo title=\"" . $back["nom"] . "\" src=\"" . $back["lien"] . "\" />";
}
}
echo "</album>";
?>
Normalement, c'est correct
-> un script Javascript avec XMLHttpRequest, qui affiche les images avec un "div" et la méthode .InnerHTML : kézako??
// source : idem
// dans ta page html
function getXMLHttpRequest() {
var xhr = null;
if (window.XMLHttpRequest || window.ActiveXObject) {
if (window.ActiveXObject) {
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
} else {
xhr = new XMLHttpRequest();
}
} else {
alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");
return null;
}
return xhr;
}
function request() {
var xhr = getXMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
readData(xhr.responseXML);
}
};
xhr.open("GET", "blabla.php", true);
xhr.send(null);
}
function readData(oData) {
var nodes = oData.getElementsByTagName("photo");
oSelect.innerHTML = "";
for (var i=0, c=nodes.length; i<c; i++) {
alert(nodes[i].getAttribute("nom"));
alert(nodes[i].getAttribute("lien"));
}
}
request();
//-->
</script>
Ca devrait être pas mal... Note : les alert(), c'est pour te montrer que tu as récupéré tes valeurs. Après, tu en fait ce que tu veux. Je suppose que tu dois pouvoir les envoyer a ta galerie en Javascript.
Ouf...
// Ca fait peur sans les tabulations :\
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bon aller, derniere intervention ^^"
<?php
header("Content-Type: text/xml");
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
$dir = 'files/photos_diapo/';
echo '<album id="photos_diapo">';
if ($handle = opendir($dir)) {
while (false !== ($file = readdir($handle))) {
if (preg_match("#^[a-z0-9 _-]+\.(jpg|png|jpeg|gif)$#i", $file))
echo '<photo title="Mustang" src="' . $dir . $file . '"/>';
}
closedir($handle);
}
echo '</album>';
?>
Ce script produit un arbre xml a partir d'un répertoire $dir.
Je ne sais pas ou est placé la valeur de title, donc je te laisse le modifier. Voila tout.
<?php
header("Content-Type: text/xml");
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
$dir = 'files/photos_diapo/';
echo '<album id="photos_diapo">';
if ($handle = opendir($dir)) {
while (false !== ($file = readdir($handle))) {
if (preg_match("#^[a-z0-9 _-]+\.(jpg|png|jpeg|gif)$#i", $file))
echo '<photo title="Mustang" src="' . $dir . $file . '"/>';
}
closedir($handle);
}
echo '</album>';
?>
Ce script produit un arbre xml a partir d'un répertoire $dir.
Je ne sais pas ou est placé la valeur de title, donc je te laisse le modifier. Voila tout.
merci, "title" est le titre de la photo.
Quest-ce que je peux faire de cet arbre que tu m'a donné?
Merci
Quest-ce que je peux faire de cet arbre que tu m'a donné?
Merci
OK, je viens de retravailler dessus, le dernier script que tu m'as passé correspond en partie à ce que je cherche.
Il ne me reste plus qu'a copier le contenu XML généré avec ton script, dans le fichier "galerie.xml", le fichier d'origine.
(je prefere copier les données dedans plutot que d'avoir à recréer un autre fichier "galerie2.xml", "galerie3.xml"...
Quelqu'un s'aurait faire?
Merci
Il ne me reste plus qu'a copier le contenu XML généré avec ton script, dans le fichier "galerie.xml", le fichier d'origine.
(je prefere copier les données dedans plutot que d'avoir à recréer un autre fichier "galerie2.xml", "galerie3.xml"...
Quelqu'un s'aurait faire?
Merci
Beaucoup de gens sur ce sujet x)
Tu ne peux pas tout simplement recopier le script php dans galerie.xml ?
Tu ne peux pas tout simplement recopier le script php dans galerie.xml ?
lol non, galerie.xml doit respecter une certaine architecture.
Voici une nouvelle idée que je viens d'avoir :
MODIFIER LE SCRIPT POUR QUIL AILLE DANS TOUS LES REPERTOIRES (où il a les photos) ET QU'IL FASSE UNE BOUCLE POUR GENERER LES DONNEES
ENSUITE IL CONCATENE ET ECRASE LES DONNEES DE "GALERIE.XML",
TOUS EN RESPECTANT L'ARCHITECTURE
désolé pour les majuscule, c'est un copier-coller d'un pense bete que j'ai fait tout a l'heure lol
Voici une nouvelle idée que je viens d'avoir :
MODIFIER LE SCRIPT POUR QUIL AILLE DANS TOUS LES REPERTOIRES (où il a les photos) ET QU'IL FASSE UNE BOUCLE POUR GENERER LES DONNEES
ENSUITE IL CONCATENE ET ECRASE LES DONNEES DE "GALERIE.XML",
TOUS EN RESPECTANT L'ARCHITECTURE
désolé pour les majuscule, c'est un copier-coller d'un pense bete que j'ai fait tout a l'heure lol
<?php
header("Content-Type: text/xml");
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
$dir = 'files/photos_diapo/';
echo '<reponse>';
echo '<album id="macbookpro">';
if ($handle = opendir($dir)) {
while (false !== ($file = readdir($handle))) {
if (preg_match("#^[a-z0-9 _-]+\.(jpg|png|jpeg|gif)$#i", $file))
echo '<photo title="Mustang" src="' . $dir . $file . '"/>';
}
closedir($handle);
}
echo '</album>';
echo '</reponse>';
?>
Bon. Dernier essai... Tu enregistres ce script sous galerie.php, puis tu remplaces galerie.xml par celui-là, et enfin tu modifie la ligne 106 de JMGalerie.js;
-> new Ajax_request('files/galerie.php',{method:'get',params:'',onSuccess:successNavInit});
// J'ai utilisé exactement la même architecture que l'ancien arbre
header("Content-Type: text/xml");
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
$dir = 'files/photos_diapo/';
echo '<reponse>';
echo '<album id="macbookpro">';
if ($handle = opendir($dir)) {
while (false !== ($file = readdir($handle))) {
if (preg_match("#^[a-z0-9 _-]+\.(jpg|png|jpeg|gif)$#i", $file))
echo '<photo title="Mustang" src="' . $dir . $file . '"/>';
}
closedir($handle);
}
echo '</album>';
echo '</reponse>';
?>
Bon. Dernier essai... Tu enregistres ce script sous galerie.php, puis tu remplaces galerie.xml par celui-là, et enfin tu modifie la ligne 106 de JMGalerie.js;
-> new Ajax_request('files/galerie.php',{method:'get',params:'',onSuccess:successNavInit});
// J'ai utilisé exactement la même architecture que l'ancien arbre