Filer på webservere skal altid være uden mellemrum (ikke "dette er et billede.jpg"), uden umlauter eller specialtegn (ikke "football.jpg"), uden tilbageslag (ikke "Arbeit \ Auto.jpg") og med små bogstaver (ikke " test.JPG "). For nylig var jeg dog nødt til at få adgang til og behandle et stort antal forudindstillede filer med ethvert filnavn til et kundeprojekt.
Linux-systemer giver som standard adgang til filer med umlauts og specialtegn, så her skal ingen specielle funktioner overvejes. Det ser helt anderledes ud på Windows-systemer: Her skal du bruge nogle tricks og trykke på COM-grænsefladen. Først og fremmest inkluderer du den krævede udvidelse i php.ini
[COM_DOT_NET] extension = php_com_dotnet.dll
en. Nu bruges den meget hjælpsomme hjælperklasse WinfsUtf8 , hvilket i høj grad forenkler adgangen til COM-objekterne og kortlægger næsten alle PHP-funktioner, der påvirker filer. Efter at have integreret filen med
require_once('WinfsUtf8.php');
man har alle mulighederne for filadgang, for eksempel resultater
file_exists('ä.jpg');
forkert falsk, mens
Patchwork\PHP\Override\WinfsUtf8::file_exists('ä.jpg');
returnerer sandt.