PHP: accesso ai file con dieresi in Windows

I file sui server web dovrebbero sempre essere senza spazi (non "questa è un'immagine.jpg"), senza dieresi o caratteri speciali (non "football.jpg"), senza backslash (non "Arbeit \ Auto.jpg") e in minuscolo (non " test.JPG "). Di recente, tuttavia, ho dovuto accedere ed elaborare un gran numero di file preimpostati con qualsiasi nome di file per un progetto del cliente.


I sistemi Linux consentono l'accesso ai file con dieresi e caratteri speciali per impostazione predefinita, quindi non è necessario considerare qui caratteristiche speciali. Sembra completamente diverso sui sistemi Windows: qui devi usare alcuni trucchi e toccare l'interfaccia COM. Prima di tutto, includi l'estensione richiesta in php.ini

[COM_DOT_NET]
extension = php_com_dotnet.dll

uno. Ora viene utilizzata l' utilissima classe helper WinfsUtf8 , che semplifica notevolmente l'accesso agli oggetti COM e mappa quasi tutte le funzioni PHP che influenzano i file. Dopo aver integrato il file con

require_once('WinfsUtf8.php');

si ha tutte le possibilità di accesso ai file, ad esempio i risultati

file_exists('ä.jpg');

erroneamente falso, mentre

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

restituisce true.

Indietro