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.