Je dois travailler avec des fichiers ayant des caractères accentués dans leur nom. Malheureusement, il semble que GLOB ignore ces fichiers. J'ai créé ce code court pour la démonstration:PHP 7 glob ignore les fichiers avec des caractères accentués dans le nom
$files = glob(dirname(__FILE__) . "/data/tracks/167/*.*");
foreach($files as $file) {
var_dump($file);
var_dump(file_exists($file));
}
sortie est:
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
Mon répertoire contient 6 fichiers - 2 avec les caractères accentués sont ignorés .:
La même chose est avec file_exists, même, quand j'utilise des conseils énumérés ici - PHP file_exists with accent returns false.
L'un des noms de fichiers est:
1_1493385948_tn_22-Ještěd21.jpeg
Toute idée, ce qui ne va pas?
pouvez-vous copier ce nom de fichier dans la description, ma première tentative d'obtenir le même comportement a échoué (j'ai utilisé le str twô et cela a fonctionné) – sics
Nom de fichier ajouté. Merci. – user3523426