Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP压缩函数_Php_Zip - Fatal编程技术网

PHP压缩函数

PHP压缩函数,php,zip,Php,Zip,我试图用数组中的特定文件构建一个目录树,并将其推送到下载。这部分工作正常 问题是当我试图用内容填充特定文件时 下载完成后,文件为空 然而,switch case语句被执行,所有方法都在工作 我认为问题在于我的zip函数,但我真的不知道应该搜索什么(或者代码设计不是最好的) 乍一看,我会更改以下几行 $zip = new ZipArchive(); foreach ($dirs as $dir){ $zip->open($file, ZIPARCHIVE::

我试图用数组中的特定文件构建一个目录树,并将其推送到下载。这部分工作正常

问题是当我试图用内容填充特定文件时

下载完成后,文件为空

然而,switch case语句被执行,所有方法都在工作

我认为问题在于我的zip函数,但我真的不知道应该搜索什么(或者代码设计不是最好的)


乍一看,我会更改以下几行

    $zip = new ZipArchive();

    foreach ($dirs as $dir){
        $zip->open($file, ZIPARCHIVE::CREATE);
        $zip->addEmptyDir($dir);

由于每次添加目录时都要打开文件,因此我觉得这似乎是错误的

另一方面,我会设置一个组件名策略,并在构造函数中检查它,以防止输入攻击


我不知道,也许一个好的名称策略是-只允许在模块名称中使用字母字符、数字和破折号-

乍一看,我会更改以下几行

    $zip = new ZipArchive();

    foreach ($dirs as $dir){
        $zip->open($file, ZIPARCHIVE::CREATE);
        $zip->addEmptyDir($dir);

由于每次添加目录时都要打开文件,因此我觉得这似乎是错误的

另一方面,我会设置一个组件名策略,并在构造函数中检查它,以防止输入攻击


我不知道,也许一个好的名称策略是-模块名称中只允许字母字符、数字和破折号-

谢谢您的回复和评论!不幸的是,更改上述行似乎没有任何效果。感谢您的回复和评论!不幸的是,更改上面的行似乎没有任何效果。
    $zip = new ZipArchive();
    $zip->open($file, ZIPARCHIVE::CREATE);

    foreach ($dirs as $dir){
        $zip->addEmptyDir($dir);