2

Joomla バージョン = 2.5.6

サーバー=ワンプサーバー

PHP = 5.3.8

最終的に、次のコードを使用してファイルの zip と配列を作成する方法を見つけました。

$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

私が間違ったことをしたコードや、前のフォルダーもすべて圧縮する原因となっている何かが不足していますか? どんな助けでも本当に感謝します。よろしく

4

1 に答える 1

1

次のような絶対パス名を使用する場合

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
于 2012-06-21T15:32:27.773 に答える