[{"data":1,"prerenderedAt":62},["ShallowReactive",2],{"article-85":3},{"code":4,"msg":5,"data":6,"count":14},200,"查询成功",{"id":7,"title":8,"keywords":9,"description":10,"category_id":11,"content":12,"body_html":13,"thumb_up":14,"clicks":15,"sort":14,"remark":16,"status":17,"is_open":17,"is_deleted":14,"is_top":14,"is_recommend":14,"create_time":18,"update_time":19,"image_id":20,"url":13,"member_id":14,"cate_name":21,"prev":22,"next":25,"tags":28,"words":34,"read_time":17,"comments":11,"cover":35,"relevant":36},85,"Linux环境PHP解压缩ZipArchive中的extractTo()方法，解压zip时文件丢失的问题","PHP,Linux,解压,转码","在实际项目中要用ZipArchive解压ZIP文件，起初測试环境在Win环境中，測试通过，换到 LINUX 的环境中时  就出问题了（ZIP包中有文件和目录，包含带汉字的文件名称）\r\n\r\n问题的现象是：不带汉字的文件解压没有问题，另外有部分带汉字和数字字母的文件解压没有问题，然后其它纯文字的文件名称就丢失了，也没有报错，最后把问题定位到了extractTo()方法，这种方法是个封装的方法，看不到实际的源码。 \r\n\r\n经Google一番后，发现使用` getNameIndex `和` numFiles `",4,"在实际项目中要用ZipArchive解压ZIP文件，起初測试环境在Win环境中，測试通过，换到 LINUX 的环境中时  就出问题了（ZIP包中有文件和目录，包含带汉字的文件名称）\n\n问题的现象是：不带汉字的文件解压没有问题，另外有部分带汉字和数字字母的文件解压没有问题，然后其它纯文字的文件名称就丢失了，也没有报错，最后把问题定位到了extractTo()方法，这种方法是个封装的方法，看不到实际的源码。 \n\n经Google一番后，发现使用` getNameIndex `和` numFiles `可找到所有的文件，循环遍历使用`copy`方法进行中文转码\n\n核心代码\n\n```php\nfor($i = 0; $i \u003C $zip->numFiles; $i++) {\n    $filename = $zip->getNameIndex($i);\n    if(!is_dir($filename)){\n        \u002F\u002F需要将目标地址转码\n        $to = iconv(\"gbk\", \"utf-8\u002F\u002FIGNORE\", $topath.$filename);\n        copy(\"zip:\u002F\u002F\".$path.\"#\".$filename, $to);\n    }else{\n        @mkdir($topath.'\u002F'.$filename, 0777);\n    }\n}     \n```\n另一种方法使用unzip命令解压，解决中文解压乱码问题，命令如下：\n```bash\nexport LC_ALL=zh_CN.UTF-8 && \u002Fusr\u002Fbin\u002Funzip  -o test.zip -d test 2>&1\n```\n\n被搞了一天，能解决就是进步~",null,0,587,"",1,"2020-04-30 17:17:44","2026-04-19 15:05:06",126,"Linux",{"id":23,"title":24},84,"php项目中调用Linux命令zip和unzip",{"id":26,"title":27},86,"MySQL查询表结构命令",[29,32],{"id":30,"name":31},25,"PHP",{"id":33,"name":21},39,488,"https:\u002F\u002Ftp.myong.top\u002Fstorage\u002Farticle\u002F47\u002F99a9dc36e27ae31744abfc94176cef.jpg",[37,42,47,52,57],{"id":38,"title":39,"create_time":40,"description":41},53,"Linux环境下Apahce的调优","2019-05-21 14:04:03","整理了部分有关Apahce调优的配置说明，后续陆续的将所有调优方式更新。",{"id":43,"title":44,"create_time":45,"description":46},50,"虚拟机安装Centos7后配置网络","2019-03-26 20:37:33","VMware虚拟机上安装min版的Centos7，并配置网络。虚拟机和centos7的安装在本文不做相关的介绍。",{"id":48,"title":49,"create_time":50,"description":51},78,"Centos7安装Docker","2019-12-28 14:17:23","### 安装docker\n\n安装命令\n\n``` bash\nyum install docker\n```\n\n启动docker并设置为开机启动\n\n``` bash\nservice docker start\nchkconfig docker on\n```\n\nLCTT 译注：此处采用了旧式的 sysv 语法，如采用CentOS 7中支持的新式 systemd 语法，如下：\n\n``` bash\nsystemcty start docker.service\nsystemcty enable docker.s",{"id":53,"title":54,"create_time":55,"description":56},21,"Cenos7.2下安装Apache2.4，MySQL5.7和PHP7.1","2019-01-17 22:48:15","一、主要软件：1、SecureCRT 5.1：是一款支持SSH（SSH1和SSH2）的终端仿真程序，简单地说是Windows下登录UNIX或Linux服务器主机的软件。2、WinSCP：是一个Windows环境下使用SSH的开源图形化SFTP客户端。同时支持SCP协议。它的主要功能就是在本地与远程计算机间安全的复制文件。winscp也可以链接其他系统,比如linux系统。以上两款软件的具体使用可以通过搜索引擎分分钟查到。",{"id":58,"title":59,"create_time":60,"description":61},20,"cenos 7下安装SVN以及同步代码到WEB目录","2019-01-17 22:46:50","该文章主要介绍给cenos 7下安装SVN以及同步代码到WEB目录。",1783431658600]