Scan repertoire + xml [Résolu]

Defray 17 Messages postés dimanche 20 février 2005Date d'inscription 28 novembre 2007 Dernière intervention - 24 nov. 2007 à 18:01 - Dernière réponse : Defray 17 Messages postés dimanche 20 février 2005Date d'inscription 28 novembre 2007 Dernière intervention
- 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
Defray 17 Messages postés dimanche 20 février 2005Date d'inscription 28 novembre 2007 Dernière intervention - 25 nov. 2007 à 22:17
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

Merci Defray 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de Defray
neigedhiver 2492 Messages postés jeudi 30 novembre 2006Date d'inscription 14 janvier 2011 Dernière intervention - 24 nov. 2007 à 18:49
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
Defray 17 Messages postés dimanche 20 février 2005Date d'inscription 28 novembre 2007 Dernière intervention - 25 nov. 2007 à 04:10
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
malalam 10918 Messages postés lundi 24 février 2003Date d'inscription 2 mars 2010 Dernière intervention - 25 nov. 2007 à 23:14
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
Defray 17 Messages postés dimanche 20 février 2005Date d'inscription 28 novembre 2007 Dernière intervention - 28 nov. 2007 à 01:11
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
neigedhiver 2492 Messages postés jeudi 30 novembre 2006Date d'inscription 14 janvier 2011 Dernière intervention - 28 nov. 2007 à 01:17
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
malalam 10918 Messages postés lundi 24 février 2003Date d'inscription 2 mars 2010 Dernière intervention - 28 nov. 2007 à 01:30
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
Defray 17 Messages postés dimanche 20 février 2005Date d'inscription 28 novembre 2007 Dernière intervention - 28 nov. 2007 à 03:14
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.