PHP: acces la fișiere cu umlauts sub Windows

Fișierele de pe serverele web trebuie să fie întotdeauna fără spații (nu „aceasta este o imagine.jpg”), fără umlauturi sau caractere speciale (nu „football.jpg”), fără bare oblice (nu „Arbeit \ Auto.jpg”) și cu litere mici (nu „ test.JPG "). Recent, însă, a trebuit să accesez și să procesez un număr mare de fișiere cu orice nume de fișier pentru un proiect de client.


Sistemele Linux permit accesul la fișiere cu umlauturi și caractere speciale în mod implicit, astfel încât nu trebuie luate în considerare caracteristici speciale aici. Arată complet diferit pe sistemele Windows: aici trebuie să folosiți câteva trucuri și să atingeți interfața COM. În primul rând, includeți extensia necesară în php.ini

[COM_DOT_NET]
extension = php_com_dotnet.dll

unu. Acum este folosită clasa de ajutor WinfsUtf8 foarte utilă, care simplifică foarte mult accesul la obiectele COM și mapează aproape toate funcțiile PHP care afectează fișierele. După integrarea fișierului cu

require_once('WinfsUtf8.php');

unul are toate posibilitățile de acces la fișier, de exemplu rezultate

file_exists('ä.jpg');

incorect fals, întrucât

Patchwork\PHP\Override\WinfsUtf8::file_exists('ä.jpg');

revine adevărat.

Înapoi