乔姆拉拉链一切


Joomla zipping everything

Joomla version = 2.5.6

服务器 = Wamp 服务器

PHP = 5.3.8

我终于想出了如何使用以下代码压缩和数组文件:

$filesArray = array();
$archivename = JPATH_SITE.'/'.'modules'.'/'.'mod_module_gen'.'/'.'package'.'/'.$new_folder_name.'/'.$new_folder_name.'.zip';
$excludes = array('.svn', '.zip','.DS_Store','__MACOSX','CVS');
$files = JFolder::files(JPATH_SITE.'/'.'modules'.'/'.'mod_module_gen'.'/'.'package'.'/'.$new_folder_name, null, true, true, $excludes);
foreach($files as $file)
{
    $data = JFile::read($file);
    $filesArray[] = array('name' => $file, 'data' => $data);
}
$zip =& JArchive::getAdapter('zip');
$zip->create($archivename, $filesArray);

但是,如果不只是将文件压缩到创建的文件夹中,它会压缩导致文件数组的所有文件夹。

/wamp/www/joomjunk/modules/mod_module_gen/package/$new_folder_name/files

$new_folder_name = 用户定义名称

它应该只压缩,如下所示:

$new_folder_name/files

代码中是否有我做错了什么,或者缺少什么导致它也压缩了所有以前的文件夹?任何帮助将不胜感激。问候

如果您使用绝对路径名,例如

JPATH_SITE.'/'.'modules'.'/'.'mod_module_gen'.'/'.'package'.'/'.$new_folder_name

您将获得一个带有您提供给它的文件夹结构的存档。

命令行中的简短示例:

thomas@thinky ~ % tar -cf bar.tar image.jpg
thomas@thinky ~ % tar -cf foo.tar /home/thomas/image.jpg

请注意存档中的文件夹结构:

thomas@thinky ~ % tar -tvf bar.tar
-rw-rw-r-- thomas/thomas 1922254 2012-04-23 20:02 image.jpg
thomas@thinky ~ % tar -tvf foo.tar
-rw-rw-r-- thomas/thomas 1922254 2012-04-23 20:02 home/thomas/image.jpg