Scan repertoire + xml [Résolu]

Messages postés
17
Date d'inscription
dimanche 20 février 2005
Dernière intervention
28 novembre 2007
- - Dernière réponse : Defray
Messages postés
17
Date d'inscription
dimanche 20 février 2005
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
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
17
Date d'inscription
dimanche 20 février 2005
Dernière intervention
28 novembre 2007
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 89 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Defray
Messages postés
2492
Date d'inscription
jeudi 30 novembre 2006
Dernière intervention
14 janvier 2011
13
0
Merci
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 ?
Commenter la réponse de neigedhiver
Messages postés
17
Date d'inscription
dimanche 20 février 2005
Dernière intervention
28 novembre 2007
0
Merci
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
Commenter la réponse de Defray
Messages postés
10918
Date d'inscription
lundi 24 février 2003
Dernière intervention
2 mars 2010
31
0
Merci
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.
Commenter la réponse de malalam
Messages postés
17
Date d'inscription
dimanche 20 février 2005
Dernière intervention
28 novembre 2007
0
Merci
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
Commenter la réponse de Defray
Messages postés
2492
Date d'inscription
jeudi 30 novembre 2006
Dernière intervention
14 janvier 2011
13
0
Merci
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
^^
Commenter la réponse de neigedhiver
Messages postés
10918
Date d'inscription
lundi 24 février 2003
Dernière intervention
2 mars 2010
31
0
Merci
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à...
Commenter la réponse de malalam
Messages postés
17
Date d'inscription
dimanche 20 février 2005
Dernière intervention
28 novembre 2007
0
Merci
^^ effectivement neigedhiver :)
citation: Pour le xml, on verra un autre jour, il se fait vraiment tard là...

merci beaucoup, cela m'aiderait énormément
Commenter la réponse de Defray

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.