亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

php ziparchive壓縮文件夾時,Zip文件目錄結構不對

php ziparchive壓縮文件夾時,Zip文件目錄結構不對

PHP
函數式編程 2019-03-18 18:07:47
function addFileToZip($path, $zip) { $handler = opendir($path); while (($filename = readdir($handler)) !== false) { if ($filename != "." && $filename != "..") { if (is_dir($path . "/" . $filename)) { $this->addFileToZip($path . "/" . $filename, $zip); } else { //將文件加入zip對象 $zip->addFile($path . "/" . $filename); } } } @closedir($path); } $zip = new ZipArchive(); if ($zip->open("test.zip", ZipArchive::OVERWRITE) === TRUE) { addFileToZip("1735", $zip); $zip->close(); } 1、上面這段代碼是吧當前目錄下的名為1735的文件夾中的內容壓縮到test.php,這時候壓縮出來的zip文件的目錄 結構沒有問題2、但當目標文件夾的位置不是在同級目錄時,比如addFileToZip("tt/1735", $zip); 這時候壓縮出來的zip文件的目錄結構就多了一層tt文件夾 3、Q:有沒有辦法當目標文件不在同級文件夾時,壓縮出來的zip包目錄結構也只有一層?
查看完整描述

4 回答

?
largeQ

TA貢獻2039條經驗 獲得超8個贊

兄弟,不知道你解決了沒有,,我也和你一樣的問題 ,,我也不知道怎么解決?

我最后解決了

使用zip下的renameName,在$zip->addFile($path.$filename);后面再加入一個函數就行了$zip->renameName($path.$filename,$filename);就不會出現多級目錄了.

查看完整回答
反對 回復 2019-03-18
?
12345678_0001

TA貢獻1802條經驗 獲得超5個贊

你們怎么解決的啊,按照樓上的辦法他把我本來壓縮文件夾里面的目錄結構也都搞沒了,如果想保留本來壓縮有的結構,去掉他的那些多出來的父結構應該怎么做哦?

查看完整回答
反對 回復 2019-03-18
?
青春有我

TA貢獻1784條經驗 獲得超8個贊

function addFileToZip($path, ZipArchive $zip, $sub_dir = '')
{

$handler = opendir($path);
while (($filename = readdir($handler)) !== false)
{
    if ($filename != "." && $filename != "..")
    {
        //文件夾文件名字為'.'和‘..’,不要對他們進行操作
        if (is_dir($path . $filename))
        {
            // 如果讀取的某個對象是文件夾,則遞歸
            addFileToZip($path . $filename . '/', $zip, $filename . '/' );
        }
        else
        {
            //將文件加入zip對象
            $zip->addFile($path . $filename, $sub_dir . $filename );
        }
    }
}
@closedir($path);

}

查看完整回答
反對 回復 2019-03-18
  • 4 回答
  • 0 關注
  • 602 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號