这与这篇 Stack Overflow 帖子有关:
glob() 在 Windows 上找不到多字节字符的文件名?
我在使用 PHP 和 Windows 上具有多字节字符的文件时遇到问题。这是我的测试用例:
print_r(scandir('./uploads/'));
print_r(glob('./uploads/*'));
Run Code Online (Sandbox Code Playgroud)
远程 UNIX 服务器上的正确输出:
Array
(
[0] => .
[1] => ..
[2] => filename-äöü.jpg
[3] => filename.jpg
[4] => test?test.jpg
[5] => ??? ?????.jpg
[6] => ?????????.jpg
[7] => ???.jpg
)
Array
(
[0] => ./uploads/filename-äöü.jpg
[1] => ./uploads/filename.jpg
[2] => ./uploads/test?test.jpg
[3] => ./uploads/??? ?????.jpg
[4] => ./uploads/?????????.jpg
[5] => ./uploads/???.jpg
)
Run Code Online (Sandbox Code Playgroud)
Windows 本地输出不正确:
Array
(
[0] => .
[1] …Run Code Online (Sandbox Code Playgroud)