业务经理

微信扫描以上二维码

028-61286886

技术咨询

php中把文件压缩为zip格式可以使用php的zip扩展实现。

/**
     * @apiDescription 压缩打包zip
     * @param $saveDir
     * @param $zipName
     */
    protected function packToZip($saveDir, $zipName)
    {
        // 验证压缩文件是否已存在?存在则删除
        if(file_exists($zipName)) {
            unlink($zipName);
        }
        $zip = new \ZipArchive();
        if($zip->open($zipName, \ZipArchive::CREATE) === TRUE) {
            $this->addFileToZip($saveDir, $zip,$saveDir); //调用方法,对要打包的根目录进行操作,并将ZipArchive的对象传递给方法
            $zip->close(); //关闭处理的zip文件
        }
        return ;
    }
    /**
     * @apiDescription    往zip中添加文件
     * @param $path       需压缩的文件路径
     * @param $zip        zip对象
     */
    protected function addFileToZip($path, $zip){
        $handler = opendir($path);
        while(($filename = readdir($handler)) !== false) {
            if($filename != "." && $filename != "..") { //文件夹文件名字为'.'和‘..’,不要对他们进行操作
                if(is_dir($path . $filename)) { // 如果读取的某个对象是文件夹,则递归
                    self::addFileToZip($path . $filename . DS, $zip);
                } else { //将文件加入zip对象
                    $zip->addFile($path.$filename);
                }
            }
        }
        @closedir($handler);
        return ;
    }


  • 后台登录失败/系统故障/界面闪退

    出现登录闪退的情况表示服务器没有存储把session存储成功导致闪退现象,从以下几个方面检查1、查找是否非法编辑器修改过php文件导致查找bom字符https://www.xunruicms.com/doc/395.html使用这个工具运行扫描一下2、检查cache/session目录是否具备可写入权限首先手动清空这个目录中的文件,然后再登陆一次看是否生成新的文件,如果不生成新的文件就表示不可写入...

  • 网站表单/全局表单URL

    网站表单作为内容的辅助,目前他没有自定义url规则功能1、前端访问表单的提交页面/index.php?s=form&c=ceshi&m=post2、前端表单的数据列表页面/index.php?s=form&c=ceshi3、前端表单的数据详情页面/index.php?s=form&c=ceshi&m=show&id=表单内容ID网站表单的使用定位不同,因此内容表没有设计自定义url功能,只能由默认...

  • 自定义存储类型

    针对存储类型的自定义,比如需要接入其他厂商的云存储存储类型程序定义目录:dayrui/ThirdParty/Storage准备工作:预定义一个文件名,有字母组成,例如是Test开发步骤:1、存储类型命

  • PHP让cpu使用率100%,负载状态100%

    ssl登录linux服务器,使用top命令一、PHP占用高观察到php进程占用100%,记住进程PID:3295,然后输入下面命令:显示socket最高,分析原因,应该是跟服务器上的webserver

  • 多个内容页:给内容创建多个模板和地址

    需求:默认一篇内容只有一个地址和模板,就如【show-123.html】,这种地址表示内容详情页面;如果还需要为这个内容创建多个页面,例如【show-123-two.html】等。实现原理:使用新建控制器的方式来做新url地址构成。实现方法:1、以news模块为例,复制原有文件 dayrui/App/News/Controllers/Show.php2、粘贴为Two.php,内容做一下变更:

  • 【证书查询插件】使用教程

    前端搜索表单写法需要根据你实际开启的搜索字段修改 证书编号 姓名

  • 自定义字段类型

    除了diy字段外,还可以使用本教程来自定义字段类型,重写系统的字段类型逻辑比如我要把系统默认的Text字段类型,改进一下,改成我自己的需求,本教程可以不影响升级的前提下进行开发比如我建一个类型为:Text2的字段1、创建字段识别文件:dayrui/My/Field/Field.php内容格式如下:

  • 后台单独绑定域名

    把后台入口不要放在web,单独域名作为后台登录需要安装《系统安全》插件,设置后台的目录和域名即可,这样后台就彻底的隐藏了1、我们以宝塔为例,将admin.xunruicms.com作为后台单独的域名2

  • 全局自动加载Composer类

    本教程仅限于System内核使用Composer支持会自动初始化它会自动读取文件: /vendor/autoload.php 还可以自定义Composer目录,打开index.php写上:define

  • 模板快速定位编辑标签

    模板快速定位编辑标签功能指当鼠标移动到某一个区域范围时,单击这个区域可触发弹窗界面,可说明这个区域是用来做什么的。定义方法,以default目录为例1、新建文件:template/pc/default