使用Codeigniter zip库压缩时出现阿拉伯文件名问题

毗湿奴

我有一些要压缩的文件,其中一些有阿拉伯名称,提取后它们会损坏。我的PHP版本是7.2.18,我正在使用Codeigniter 3.1框架。

实际文件名:样本词Docx压缩文件名:+â+ä+à+¬_+º+ä+ ¦ +è+å+¬.docx

public function generate_zip() {
        $this->load->library('zip');

        $zip_files = $this->document_model->get_documents();

        foreach ($zip_files as $zip_file) {     
            $this->zip->read_file('uploads/documents/' . $zip_file->document_file_name);
        }
        $this->zip->download('temp.zip');
    }
阿耶什

嗨,请尝试以下代码。

/* creates a compressed zip file */
function create_zip($files = array(),$destination = '',$overwrite = false) {
    //if the zip file already exists and overwrite is false, return false
    if(file_exists($destination) && !$overwrite) { return false; }
    //vars
    $valid_files = array();
    //if files were passed in...
    if(is_array($files)) {
        //cycle through each file
        foreach($files as $file) {
            //make sure the file exists
            if(file_exists($file)) {
                $valid_files[] = $file;
            }
        }
    }
    //if we have good files...
    if(count($valid_files)) {
        //create the archive
        $zip = new ZipArchive();
        if($zip->open($destination,$overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) {
            return false;
        }
        //add the files
        foreach($valid_files as $file) {
            $zip->addFile($file,$file);
        }
        //debug
        //echo 'The zip archive contains ',$zip->numFiles,' files with a status of ',$zip->status;

        //close the zip -- done!
        $zip->close();

        //check to make sure the file exists
        return file_exists($destination);
    }
    else
    {
        return false;
    }
}

$files_to_zip = array(
    'عينة.txt',
);
//if true, good; if false, zip creation failed
$result = create_zip($files_to_zip,'my-archive.zip');

本文收集自互联网,转载请注明来源。

如有侵权,请联系 javaer101[email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用 pdfbox 创建阿拉伯文本 pdf 文件

当用户使用阿拉伯名称时,Facebook登录出现问题

使用CSS对阿拉伯文字的轮廓效果

使用JavaScript中的Regex处理阿拉伯文字

使用CodeIgniter上传库时未获取文件名

使用阿拉伯语时如何防止从右到左的文字出现?

无法使用 javascript 将英文文本与阿拉伯文本分开

在java中使用setter方法设置文本后,阿拉伯文本被反转

使用Python将字典中的阿拉伯文单词数字与相应数字匹配

如何使用span元素在svg中呈现阿拉伯文字?

使用计时器突出显示阿拉伯文本

更新:收集阿拉伯文推文,并使用python将其保存在csv中

如何使用C#在SQL Server中通过SQLCommand插入阿拉伯文本

阿拉伯文字阴影问题

阿拉伯文显示问题

preg_replace和file_get_contents无法读取阿拉伯文文件名

使用数组将罗马数字转换为阿拉伯数字时遇到问题

如何使用正则表达式从字符串中仅检索阿拉伯文本?

如何将LibreOffice设置为使用波斯/阿拉伯文/印地文页码?

如何在imageName Objective-c中使用带有阿拉伯文本的图像URL加载图像

Codeigniter:所有阿拉伯路线均无效

包含阿拉伯文本时查询字符串问题

在jspdf中使用阿拉伯字体

如何处理bash脚本中包含阿拉伯文,中文,印地文字符的“ YouTube文件名”?

JSON文件中的Unity阿拉伯文字

问题使用 VBA 将标记从数字转换为阿拉伯语等级

使用Rest和Spring Boot将阿拉伯字符保存到数据库中

如何使用Java将阿拉伯语单词插入mysql数据库

压缩多个文件并使用php codeigniter下载