PHP: accès aux fichiers avec des trémas sous Windows

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.

Retour