A webszervereken található fájloknak mindig szóközök nélkül kell lenniük (nem "ez egy kép.jpg"), umlautok vagy speciális karakterek (nem "football.jpg"), visszavágások (nem "Arbeit \ Auto.jpg") és kisbetűsek (nem ""). teszt.JPG "). A közelmúltban azonban nagyszámú fájlt kellett elérnem és feldolgozni bármilyen fájlnévvel egy ügyfélprojekthez.
A Linux rendszerek alapértelmezés szerint lehetővé teszik az umlautokat és speciális karaktereket tartalmazó fájlokhoz való hozzáférést, így itt semmilyen speciális funkciót nem kell figyelembe venni. Teljesen másképp néz ki a Windows rendszereken: Itt néhány trükköt kell használnia, és be kell érnie a COM felületre. Először is, a php.ini fájlba foglalja a szükséges kiterjesztést
[COM_DOT_NET] extension = php_com_dotnet.dll
egy. Most a nagyon hasznos WinfsUtf8 segédosztályt használják, amely jelentősen leegyszerűsíti a COM-objektumokhoz való hozzáférést, és feltérképezi a fájlokat érintő összes PHP-funkciót. Miután integrálta a fájlt a
require_once('WinfsUtf8.php');
az egyik lehetősége van a fájlok elérésére, például eredmények
file_exists('ä.jpg');
helytelenül hamis, míg
Patchwork\PHP\Override\WinfsUtf8::file_exists('ä.jpg');
true-val tér vissza.