Filer på webbservrar ska alltid vara utan mellanslag (inte "detta är en bild.jpg"), utan paraplyer eller specialtecken (inte "football.jpg"), utan bakåtvända snedstreck (inte "Arbeit \ Auto.jpg") och i gemener (inte "" test.JPG "). Nyligen var jag dock tvungen att komma åt och bearbeta ett stort antal filer med vilket filnamn som helst för ett kundprojekt.
Linux-system tillåter åtkomst till filer med paraplyer och specialtecken som standard, så att inga speciella funktioner behöver beaktas här. Det ser helt annorlunda ut på Windows-system: Här måste du använda några knep och knacka på COM-gränssnittet. Först och främst inkluderar du den nödvändiga förlängningen i php.ini
[COM_DOT_NET] extension = php_com_dotnet.dll
ett. Nu används den mycket hjälpsamma hjälpklassen WinfsUtf8 , vilket förenklar åtkomst till COM-objekten kraftigt och kartlägger nästan alla PHP-funktioner som påverkar filer. Efter att ha integrerat filen med
require_once('WinfsUtf8.php');
man har alla möjligheter till filåtkomst, till exempel resultat
file_exists('ä.jpg');
felaktigt falsk, medan
Patchwork\PHP\Override\WinfsUtf8::file_exists('ä.jpg');
returnerar sant.