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.