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

Web服务器上的文件应始终没有空格(不是“ this is picture.jpg”),没有变音符号或特殊字符(不是“ football.jpg”),没有反斜杠(不是“ Arbeit \ Auto.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。

背部