PHP: Fájlhozzáférés umlautokkal Windows alatt

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.

Vissza