PHP:在Windows下使用变音符号访问文件

网络服务器上的文件应该始终以小写形式存储,文件名中不应包含空格(例如“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。

背部