2010-01-26 8 views

Répondre

1

Modifier l'exemple de code trouvé à readdir() manuel un peu, et vous avez terminé! Quelque chose comme cela pourrait fonctionner:

<?php 
$out="<FileList>\n"; 
if ($handle = opendir('.')) { 
    while (false !== ($file = readdir($handle))) { 
     if ($file != "." && $file != "..") { 
      $out.='<file>'.$file."</file>\n"; 
     } 
    } 
    closedir($handle); 
} 
$out.='</FileList>'; 
file_put_contents("./outfile.xml",$out); 
?> 
0

Commencer à regarder glob() pour la lecture des noms de fichiers d'un répertoire. Travaillez vous-même à travers la manipulation de tableaux et regardez ensuite les fonctions de manipulation de fichiers: file_put_contents

4

Je recommanderais d'utiliser SimpleXML plutôt que de fabriquer votre fichier XML. Vous ne voulez pas que votre système s'étouffe lorsque quelqu'un utilise des caractères spéciaux dans les noms de fichiers.

$out = simplexml_load_string('<files />'); 

$DI = new DirectoryIterator('/path/to/dir'); 
foreach ($DI as $file) 
{ 
    if ($file->isFile()) 
    { 
     $out->addChild('file', $file->getFilename()); 
    } 
} 

$out->asXML('files.xml'); 
+1

Oui! XML concaténé est da debil. –

+1

'isDot' ne supprimera pas les répertoires. 'isFile' serait un meilleur contrôle. – Gordon

+0

Ouais, je ne savais pas que l'OP voudrait omettre les répertoires mais c'est logique. –

Questions connexes