基本上我試圖使用Joomla JArchive::create()
函數從相對路徑壓縮目錄。到目前爲止,我可以壓縮一個目錄,但它能夠完成整個絕對路徑。JArchive ::創建Joomla 2.5?
我使用的壓縮如下圖所示的絕對路徑的代碼:
$zipFilesArray = array();
$new_component_path = JPATH_SITE.'/'.'modules'.'/'.'mod_module_gen'.'/'.'package'.'/'.$new_folder_name;
$dirs = JFolder::folders($new_component_path, '.', true, true);
array_push($dirs, $new_component_path);
foreach ($dirs as $dir) {
$files = JFolder::files($dir, '.', false, true);
foreach ($files as $file) {
$data = JFile::read($file);
$zipFilesArray[] = array('name' => str_replace($new_component_path.DS, '', $file), 'data' => $data);
}
}
$zip = JArchive::getAdapter('zip');
$zip->create($new_component_path.'/'.$new_folder_name.'.zip', $zipFilesArray);
,我認爲是有事情做與使用JPATH_SITE
結構,我試圖改變到JURI::root
結構,但隨後提供一個錯誤說它不是一個有效的路徑。
我的任何人都可以告訴我如何壓縮Joomla的相對路徑基於我提供的代碼,那麼這將非常感激。
是否有任何使用相對路徑的具體原因? – Anand
@Anand:是的,因爲當我使用絕對路徑時,它實際上是從public_html文件夾開始壓縮整個絕對路徑。 – Lodder
我認爲$ zipFilesArray應該是包含具有完整路徑的文件的數組,而不僅僅是文件名。 $ zipFilesArray中也不需要數據 – Anand