从 PHP 中的数组创建一个 .tar 文件
Create a .tar file from a array in PHP
我想从 PHP 中的数组创建一个 .tar 文件,其中包含我要压缩的文件的路径。
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);
}
这个 tar 将从一个路径创建,但我的所有文件都和许多其他文件一样,所以我不能使用整个路径。有任何想法吗?
你必须添加每个文件,当你得到所有文件然后压缩:
$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);
这样就可以了
$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');
这一行来更改它。
我想从 PHP 中的数组创建一个 .tar 文件,其中包含我要压缩的文件的路径。
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);
}
这个 tar 将从一个路径创建,但我的所有文件都和许多其他文件一样,所以我不能使用整个路径。有任何想法吗?
你必须添加每个文件,当你得到所有文件然后压缩:
$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);
这样就可以了
$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');
这一行来更改它。