is_file 与 zip_open Windows中文路径冲突bug

浏览:225 发布日期:2018/08/17 分类:求助交流
<pre><?php

//TEST1
echo $file = '新建 Microsoft Excel 工作表.xlsx';
echo PHP_EOL;
var_dump(is_file($file));

$zip = new ZipArchive();
$zip->open($file);
print_r($zip);
$zip->close();

//TEST2
echo $file = mb_convert_encoding('新建 Microsoft Excel 工作表.xlsx','gbk','utf8');
echo PHP_EOL;
var_dump(is_file($file));

$zip = new ZipArchive();
$zip->open($file);
print_r($zip);
$zip->close();
在windows中,如果文件名为中文,
不转编码
is_file 通不过
zip_open 能打开

转编码
is_file 通过
zip_open 打不开了

要命是这个bug出现在,PhpSpreadsheet类(PHPExcel新版本)中,$reader->load($file) 将无法读取中文文件。

国产PHPer,英文比较烂,就先在这里讨论下了,求解决方案,英文好的同学帮去PhpSpreadsheet提下Issues

最佳答案
评论( 相关
后面还有条评论,点击查看>>