【发布时间】:2018-03-26 07:36:11
【问题描述】:
我需要处理名称中包含重音字符的文件。不幸的是,看起来 GLOB 忽略了这些文件。我为演示创建了这个短代码:
$files = glob(dirname(__FILE__) . "/data/tracks/167/*.*");
foreach($files as $file) {
var_dump($file);
var_dump(file_exists($file));
}
输出是:
D:\data\zdroje\Kombinovane\MotoQuest\Web\admin\pokus.php:13:string 'D:\data\zdroje\Kombinovane\MotoQuest\Web\admin/data/tracks/167/162_P1030721 (kopie).jpg' (length=87)
D:\data\zdroje\Kombinovane\MotoQuest\Web\admin\pokus.php:14:boolean true
D:\data\zdroje\Kombinovane\MotoQuest\Web\admin\pokus.php:13:string 'D:\data\zdroje\Kombinovane\MotoQuest\Web\admin/data/tracks/167/162_tn_P1030721 (kopie).jpg' (length=90)
D:\data\zdroje\Kombinovane\MotoQuest\Web\admin\pokus.php:14:boolean true
D:\data\zdroje\Kombinovane\MotoQuest\Web\admin\pokus.php:13:string 'D:\data\zdroje\Kombinovane\MotoQuest\Web\admin/data/tracks/167/1_1493222210_P1030721.jpg' (length=88)
D:\data\zdroje\Kombinovane\MotoQuest\Web\admin\pokus.php:14:boolean true
D:\data\zdroje\Kombinovane\MotoQuest\Web\admin\pokus.php:13:string 'D:\data\zdroje\Kombinovane\MotoQuest\Web\admin/data/tracks/167/1_1493222210_tn_P1030721.jpg' (length=91)
D:\data\zdroje\Kombinovane\MotoQuest\Web\admin\pokus.php:14:boolean true
我的目录包含 6 个文件 - 带有重音字符的 2 个被忽略。:
file_exists 也是如此,即使我使用此处列出的提示 - PHP file_exists with accent returns false。
其中一个文件名是:
1_1493385948_tn_22-Ještěd21.jpeg
知道吗,怎么了?
【问题讨论】:
-
你能把那个文件名复制到描述中吗,我第一次尝试得到相同的行为失败了(我使用了 str twô,这有效)
标签: php file non-ascii-characters