2015-06-11 2 views
0

Я хочу создать .tar-файл из массива в PHP, который имеет путь к файлам, которые я хочу сжать.Создайте .tar файл из массива в PHP

Array ( 
[0] => Array ([img] => 1000e5d5771dd2c08bb368faef3e44944.jpg) 
[1] => Array ([img] => 10011633ba1169e1c7a67b31ad41df0c8.jpg) 
[2] => Array ([img] => 100155e447db12dc3a0d3cc3a4bd55f10.jpg) 
) 

Я даже не знаю, если это может быть сделано, я только знаю, что это можно сделать, используя что-то вроде этого:

if (is_dir($Path) === true) { 
    $archive = new PharData('/var/www/html/media/migration.tar'); 
    $archive->buildFromDirectory($Path); 
} 

Эта смола будет создан из пути, но у меня есть все мои файлы со многими другими, поэтому я не могу использовать весь путь. Есть идеи?

+0

массив содержит полный путь или просто имя? – vivoconunxino

+0

Просто имя, но путь для всех одинаково. – amarincolas

+0

Попробуйте запустить его и вставить вывод. –

ответ

1

Это будет делать это

$your_array = [ 
       [ 'img' => '1000e5d5771dd2c08bb368faef3e44944.jpg' ], 
       [ 'img' => '10011633ba1169e1c7a67b31ad41df0c8.jpg' ], 
       [ 'img' => '100155e447db12dc3a0d3cc3a4bd55f10.jpg' ] 
       ]; 

$img_path = 'location/to/your/images/directory/'; 

try 
{ 
    $archive = new PharData('archive.tar'); 

    foreach($your_array as $img) 
    { 
     $archive->addFile($img_path . $img['img']); 
    } 
} 
catch (Exception $e) 
{ 
    echo "Exception : " . $e; 
} 

Обратите внимание, что это создаст архив в текущей директории (то же самое где находится этот фрагмент), вы можете изменить это, изменив путь до $archive = new PharData('archive.tar'); этой строки.

1

Вы должны добавить каждый файл и когда вы их получили все то компресс:

$archive = new PharData('/var/www/html/media/migration.tar'); 
//setting the path where all your files are: (guessing is the same the script runs) 
$path_folder = '.';  
foreach($array_files as $file) 
{ 
    if (is_dir($path_folder.'/'.$file) === true) { 
     $archive->addFile($path_folder.'/'.$file); 

    } 
} 

$archive->compressFiles(Phar::GZ); 
Смежные вопросы