Les fichiers sur les serveurs Web doivent toujours être sans espaces (pas "ceci est une image.jpg"), sans trémas ni caractères spéciaux (pas "football.jpg"), sans barres obliques inverses (pas "Arbeit \ Auto.jpg") et en minuscules (pas " test.JPG "). Récemment, cependant, j'ai dû accéder et traiter un grand nombre de fichiers prédéfinis avec n'importe quel nom de fichier pour un projet client.
Les systèmes Linux permettent l'accès aux fichiers avec des trémas et des caractères spéciaux par défaut, de sorte qu'aucune fonctionnalité spéciale ne doit être considérée ici. Cela a l'air complètement différent sur les systèmes Windows: Ici, vous devez utiliser quelques astuces et accéder à l'interface COM. Tout d'abord, vous incluez l'extension requise dans php.ini
[COM_DOT_NET] extension = php_com_dotnet.dll
un. Maintenant, la classe d'assistance très utile WinfsUtf8 est utilisée, ce qui simplifie considérablement l'accès aux objets COM et mappe presque toutes les fonctions PHP qui affectent les fichiers. Après avoir intégré le fichier avec
require_once('WinfsUtf8.php');
on a toutes les possibilités d'accès au fichier, par exemple résultats
file_exists('ä.jpg');
incorrectement faux, alors que
Patchwork\PHP\Override\WinfsUtf8::file_exists('ä.jpg');
renvoie vrai.