网络服务器上的文件应该始终以小写形式存储,文件名中不应包含空格(例如“this is an image.jpg”)、变音符号或特殊字符(例如“football.jpg”)、反斜杠(例如“work\car.jpg”),也不应包含小写字母(例如“test.JPG”)。然而,最近我为了一个客户项目,需要访问和处理大量文件名任意的预定义文件。
Linux系统默认允许访问带有变音符号和特殊字符的文件,因此此处无需考虑特殊功能。 在Windows系统上看起来完全不同:在这里,您必须使用一些技巧,然后进入COM界面。 首先,您在php.ini中包含所需的扩展名
[COM_DOT_NET] extension = php_com_dotnet.dll
一。 现在,使用非常有用的帮助程序类WinfsUtf8 ,该类大大简化了对COM对象的访问,并映射了几乎所有影响文件的PHP函数。 整合档案后
require_once('WinfsUtf8.php');
一个拥有所有可能的文件访问功能,例如结果
file_exists('ä.jpg');
错误地虚假,而
Patchwork\PHP\Override\WinfsUtf8::file_exists('ä.jpg');
返回true。