Scan repertoire + xml

Résolu
Defray Messages postés 17 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 28 novembre 2007 - 24 nov. 2007 à 18:01
Defray Messages postés 17 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 28 novembre 2007 - 28 nov. 2007 à 03:14
Bonjour,

j'aimerai enregistrer cette function 'scan' en fichier XML.
j'ai essayai de passer les echo en variable '$xml' mais l'imbrication de la fonction scan me pose probleme pour l'affichage et l'enregistrement

<?php
header("Content-Type: text/xml");
echo '<?xml version="1.0" encoding="ISO-8859-1"?>';
echo '<doc>';

function scan($rep)
{
$dir = opendir($rep);
if($dir)
{ while (false !($f readdir($dir)))
{
if(is_file($rep.$f))
{

echo '<fichiers>'.$f.'</fichiers>';
}
if(is_dir($rep.$f) && $f!=".." && $f!=".")
{
echo '<'.$f.'>';
echo '<nom>'.$f.'</nom>';
$new_dir=realpath($rep.$f);
scan("$new_dir/");
echo '</'.$f.'>';
}
}
}
}
echo '<themes>';
scan("../upload/");
echo '</themes>';
echo '</doc>';

//echo $xml;
//$fichierXML = "galerie.xml";
//$openfichier = fopen($fichierXML,"r+");
//fwrite($openfichier,$xml);
//fclose($openfichier);
?>

resultats en echo
<?xml version="1.0" encoding="ISO-8859-1" ?>
- <doc>
- <themes>
-
<nom>Architecture-Urbanisme</nom>
+ <DSC_0729>
+ <DSC_1762>
+ <DSC_1861>

+
+ <Creation-visuelle>
+ <Evenements-Dates>
</themes>
</doc>

j'aimerai avoir le meme résultat en variable $xml.= et pouvoir l'enregistrer.
Merci pour votre aide.
Cordialment Frédéric

8 réponses

Defray Messages postés 17 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 28 novembre 2007
25 nov. 2007 à 22:17
En faite j'ai pas eu besoin de l'enregistrer pour continuer mon projet, je le traite en xls, j'ai donc juste ajouté
echo '<?xml:stylesheet type="text/xsl" href="books.xsl"?>'
et j'essaye maintenant de le manipuler
merci quand meme  neigedhiver
3
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
24 nov. 2007 à 18:49
Salut,

J'ai pas bien compris quel problème tu as réellement.

"mais l'imbrication de la fonction scan me pose probleme pour l'affichage et l'enregistrement "
=> C'est pas très très clair... :/ Est-ce que tu peux expliquer un peu plus ce que tu veux exactement et ce qui t'empêche de l'avoir ?
0
Defray Messages postés 17 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 28 novembre 2007
25 nov. 2007 à 04:10
salut neigedhiver
pour enregistrer en fichier xml je procede comme cela :

<?php
$fichierXML = "galerie.xml";
header("Content-Type: text/xml");
$xml = '<?xml version="1.0" encoding="ISO-8859-1"?>';
$xml .= '<themes>';
 
function scan($rep)
  {
 
   $dir = opendir($rep);
   if($dir)
   {   while (false !($f readdir($dir)))
   {
   if(is_file($rep.$f))
   {
   $xml .= '<fichiers>'.$f.'</fichiers>';
   }
   if(is_dir($rep.$f) && $f!=".." && $f!=".")
   {
  $xml .= '<'.$f.'>';
  $xml .= '<nom>'.$f.'</nom>';
  $new_dir=realpath($rep.$f);
  scan("$new_dir/");
  $xml .= '</'.$f.'>';
   }
   }
   }
}
scan("../upload/");
$xml .= '</themes>';
closedir($dir);
 
echo $xml;
$openfichier = fopen($fichierXML,"r+");
fwrite($openfichier,$xml);
fclose($openfichier);
?>

ERREUR:
Un seul élément de niveau supérieur est autorisé dans un document XML. Erreur de traitement de la ressource

du coup impossible d'enregistrer ou de visualiser mon xml :(
si tu as une idée
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
25 nov. 2007 à 23:14
Hello,

tu vas avoir du mal à manipuler un xml mal formé avec du xls...
Là tu n'obtiendras rien avec ce code : tu ne passes pas ton $xml à ta fonction, et tu ne le récupères pas non plus. Tu devrais te renseigner sur la portée des variables.
PS : pour visualiser ton xml, ouvre le avec ujn éditeur de texte normal...sans tenir compte du fait que c'est un xml.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Defray Messages postés 17 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 28 novembre 2007
28 nov. 2007 à 01:11
oui malalam, je suis à nouveau bloqué
je n'arrive pas a créer une structure correcte des le départs
Si tu peux jeter un oeil ?

Petit récapitulatif:
je souhaite lister les dossiers, sous dossiers et fichiers d'un répertoire pour une insertion massive de ma photothèque sur mysql.

Structure à scanner:

-Dossier "themes"
--Architecture-Urbanisme (dossier nom du theme)
DSC_0729 (dossier nom de limage 1)
---A3 (dossier)
DSC_0729.jpg (images a3)
---A4 (dossier)
vide
---basedef (dossier)
DSC_0729.jpg (images basedef)
---Web (dossier)
----DSC_0729.jpg (imageweb)

resultats ideal attendue en xml:

<?xml version= "1.0" encoding="ISO-8859-1"?>
<doc>
<themes>Architecture-Urbanisme</themes>
<nom>DSC_0729</nom>
DSC_0729.jpg

DSC_0729.jpg
<Web>DSC_0729.jpg</Web>
</doc>

ensuite un traitement xsl de se type devrai convenir:

<?xml version ="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="themes">
<xsl:text> INSERT INTO phototheques (themes, nom, A3, A4, basedef, Web) VALUES ( </xsl:text>
<xsl:value-of select="themes"/>
<xsl:text>, </xsl:text>
<xsl:value-of select="nom"/>
<xsl:text>, </xsl:text>
<xsl:value-of select="A3"/>
<xsl:text>, </xsl:text>
<xsl:value-of select="A4"/>
<xsl:text>, </xsl:text>
<xsl:value-of select="basedef"/>
<xsl:text>, </xsl:text>
<xsl:value-of select="Web"/>
<xsl:text> </xsl:text>
<xsl:text>);</xsl:text>

</xsl:template>
</xsl:stylesheet>

Si tu peux juste montrer la bonne voix pour bien formater mon PHP, ça serait vraiment très sympa.
merci pour l'info je vais tester ujn et si tu peux regarder mon problème ça serait nickel
merci d'avance
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
28 nov. 2007 à 01:17
Salut,

"merci pour l'info je vais tester ujn"

Je crois qu'il s'agissait d'une faute de frappe de la part de malalam... Aucun éditeur de texte ne porte ce nom... ujn = un
^^
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
28 nov. 2007 à 01:30
Lol heu oui...en effet ;-) UN éditeur de texte normal. Textpad par exemple, si tu veux que je dénonce...
Pour le xml, on verra un autre jour, il se fait vraiment tard là...
0
Defray Messages postés 17 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 28 novembre 2007
28 nov. 2007 à 03:14
^^ effectivement neigedhiver :)
citation: Pour le xml, on verra un autre jour, il se fait vraiment tard là...

merci beaucoup, cela m'aiderait énormément
0
Rejoignez-nous