我的网站上有一个文件夹只是为了随机文件。我使用php opendir列出所有文件,所以我可以设置页面样式。但我上传的特殊字符文件不起作用。当我点击它们时它说没有找到文件。但是当我检查目录时,文件就在那里。好像链接错了。任何想法我怎么能得到这些文件名的正确链接,其中包含特殊字符?
答案 0 :(得分:4)
这很棘手。这取决于您的文件系统对文件名使用的编码以及您的Web服务器或PHP函数如何(如果)转换编码。
首先,请确保您的链接从不使用未编码的非ASCII字符。 URL应为UTF-8,即é应编码为%C3%A9。如果这不起作用,请尝试%E9(ISO-8859-1中的é)。
您可能会发现iconv()
函数可用于转换编码。 rawurlencode()
是强制性的。
答案 1 :(得分:0)
foreach (new DirectoryIterator('/path/to/folder') as $fileInfo) {
if($fileInfo->isDot() || $fileInfo->isDir()) continue;
echo $fileInfo->getFilename() . "<br>\n";
}
编辑:刚才意识到我误解了这个问题。它可能是像porneL那样的编码问题