PHP(ZipArchive) 创建压缩包添加中文文件名格式文件出错处理

本文介绍了一种解决PHP中使用ZipArchiveaddFile方法压缩中文文件名时出现错误的方法。通过将中文文件名临时替换为英文名进行压缩,之后还原文件名,从而解决了这一问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在PHP某些版本中,使用ZipArchive addFile方法添加中文文件名的文件时出错(return false),处理方式:
把文件重命名,再添加,addFile的第二个参数用原来的文件名即可,具体代码如下:

$zipFilePath = $path.uniqid().'.zip';
//压缩文件
$zip = new \ZipArchive();
// 打开一个zip文档,ZipArchive::OVERWRITE:如果存在这样的文档,则覆盖;ZipArchive::CREATE:如果不存在,则创建
$zip->open($zipFilePath, \ZipArchive::OVERWRITE | \ZipArchive::CREATE);
// 如果文件名是中文名则先转英文再添加到压缩包
$newFileName = $path.uniqid().'.csv';
rename($filePath, $newFileName);
$zip->addFile($newFileName, $fileName.'.csv');
$zip->close();
unlink($newFileName);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值