我有创建zip存档文件的麻烦。Php ZipArchive创建没有所有文件夹的zip
我有一个文件夹2016_03_01_full,应该归档此路径可用。
C:\OpenServer\domains\project\backup\2016_03_01_full
Zip文件应该具有相同名称的
C:\OpenServer\domains\stereoshoots\backup\2016_03_01_full.zip
被创建为文件夹2016_03_01_full.zip这是我的功能
public function createArchive($source, $destination) {
$zip = new \ZipArchive();
if(!$zip->open($destination, \ZipArchive::CREATE))
return false;
$source = str_replace('\\', '/', realpath($source));
if(is_dir($source) === true) {
$files = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($source), \RecursiveIteratorIterator::SELF_FIRST);
foreach ($files as $file) {
$file = str_replace('\\', '/', $file);
if(in_array(substr($file, strrpos($file, '/') + 1), array('.', '..')))
continue;
$file = realpath($file);
if(is_dir($file) === true)
$zip->addEmptyDir(str_replace($source . '/', '', $file . '/'));
elseif(is_file($file) === true)
$zip->addFromString(str_replace($source . '/', '', $file), file_get_contents($file));
}
}
elseif(is_file($source) === true)
$zip->addFromString(basename($source), file_get_contents($source));
return $zip->close();
}
$this->createArchive($this->getBackupFolderDir().'/', $this->getBackupFolderDir().'.zip');
它创建归档,但它创建的所有文件夹从路径。所以当我打开zip文件时,我看到了OpenServer \ domains \ project \ backup \ 2016_03_01_full文件夹。有没有办法存档没有路径文件夹?
谢谢!
什么呢'的var_dump($这个 - > getBackupFolderDir()) ;'给? – RomanPerekhrest
C:\ OpenServer \ domains \ project \ backup \ 2016_03_01_full – Tigran