我想使用PHP重命名文件。PHP文件重命名 - 文件名中的非法字符
我循环遍历包含文件的目录,一旦找到文件,我想使用rename()来进行实际的重命名。
到目前为止这么简单。
问题是需要重命名的文件在文件名中包含非法字符。 我可以从名称中删除非法字符,但是当我想用新名称重命名文件时,找不到它。
所以一旦我到了可以使用的地步rename() PHP会发出警告:系统找不到指定的文件。 (代码:2)。
PHP似乎无法将文件识别为文件(is_file()返回false)。 有问题的文件是pdf文件,我可以在Acrobat Reader中没有任何问题的情况下打开它。 该文件是使用Quartz在Mac上生成的,我正在使用Windows。
有没有人有一个想法,我可以如何让PHP识别名称中的非法字符作为文件的文件?
PS
这是我的代码:
$dataDirectory = new RecursiveDirectoryIterator($folders);
foreach ($dataDirectory as $dataName => $dataFileName) {
$isfile = is_file($dataFileName); // false for files with illegal character in filename
$result = rename($dataFileName, 'testname'); // generates warning mentioned above
}
谢谢。您指出有脚本语言可以使用本地Unicode文件名。你能建议一个吗? – copossum
Node.js就是一个例子。 –