我正在尝试读取服务器上文件列表的名称,并使用这些文件创建XML文件。其中一些有外语字符,这会在XML创建过程中出现问题。
搜索后我意识到我可能需要使用htmlspecialchars
或rawurlencode
,但我无法让这些工作。
以下代码是根据我在网上找到的代码构建的。除了不知道更好之外,没有什么特别的理由做任何事情。
$objects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator(realpath($_SERVER['DOCUMENT_ROOT'])), RecursiveIteratorIterator::SELF_FIRST);
header("Content-Type: text/xml;");
echo '<?xml version="1.0" encoding="UTF-8"?><list>';
foreach($objects as $name){
echo '<file><loc>'.$name.fileName.'</loc><lastmod>'.date('Y-m-d',filemtime($name)).'</lastmod></file>';
}
echo '</list>';
澄清:这不是rawurlencode
失败,只是因为我不知道如何将其保存在已解码的XML文件中
<file>
<loc>
http://%2Fhome%2Fusers%2Fjdfvnftp%2Fjdfv.nl%2Fptp%2Ftorrents%2FBuck.2011.DVD.XviD.AVI.106682.torrent.importedfileName
</loc>
<lastmod>2012-05-29</lastmod>
</file>