相关疑难解决方法(0)

如何[递归]在PHP中压缩目录?

目录是这样的:

home/
    file1.html
    file2.html
Another_Dir/
    file8.html
    Sub_Dir/
        file19.html
Run Code Online (Sandbox Code Playgroud)

我使用PHPMyAdmin中使用的相同PHP Zip类http://trac.seagullproject.org/browser/branches/0.6-bugfix/lib/other/Zip.php.我不确定如何压缩目录而不仅仅是文件.这是我到目前为止所拥有的:

$aFiles = $this->da->getDirTree($target);
/* $aFiles is something like, path => filetime
Array
(
    [home] => 
    [home/file1.html] => 1251280379
    [home/file2.html] => 1251280377
    etc...
)

*/
$zip = & new Zip();
foreach( $aFiles as $fileLocation => $time ){
    $file = $target . "/" . $fileLocation;
    if ( is_file($file) ){
        $buffer = file_get_contents($file);
        $zip->addFile($buffer, $fileLocation);
    }
}
THEN_SOME_PHP_CLASS::toDownloadData($zip); // this bit works ok
Run Code Online (Sandbox Code Playgroud)

但是当我尝试解压缩相应的下载zip文件时,我得到"不允许操作"

这个错误只发生在我尝试解压缩我的mac时,当我通过命令行解压缩文件解压缩时.我是否需要在下载时发送特定的内容类型,目前为'application/zip'

php directory recursion zip directory-structure

117
推荐指数
3
解决办法
10万
查看次数

PHP递归备份脚本

我为我的网站写了一个基本的内容管理系统,包括一个管理面板.我理解基本文件IO以及通过PHP进行复制,但是我对从脚本调用的备份脚本的尝试失败了.我试过这样做:

//... authentication, other functions
for(scandir($homedir) as $buffer){
    if(is_dir($buffer)){
        //Add $buffer to an array
    }
    else{
        //Back up the file
    }
}
for($founddirectories as $dir){
    for(scandir($dir) as $b){
        //Backup as above, adding to $founddirectories
    }
}
Run Code Online (Sandbox Code Playgroud)

但它似乎没有用.

我知道我可以使用FTP来做到这一点,但我想要一个完全服务器端的解决方案,只要有足够的授权就可以在任何地方访问.

php backup

7
推荐指数
1
解决办法
8202
查看次数

标签 统计

php ×2

backup ×1

directory ×1

directory-structure ×1

recursion ×1

zip ×1