2010-01-26 59 views

回答

1

修改在readdir()手動了一下發現的代碼示例,你就大功告成了!像這樣的東西可以工作:

<?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); 
?> 
4

我會推薦使用SimpleXML,而不是手工操作XML。當用戶在文件名中使用特殊字符時,您不希望系統窒息。

$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

是的!串聯的XML是最糟糕的。 – 2010-01-26 17:15:50

+1

'isDot'不會忽略目錄。 'isFile'將是一個更好的檢查。 – Gordon 2010-01-26 17:36:42

+0

是的,我沒有意識到OP會想要省略目錄,但它是有道理的。 – 2010-01-26 17:58:22

相關問題