答えて
:
$zip = new ZipArchive();
$res = $zip->open('test.zip', ZipArchive::CREATE);
$zip->addFromString('test.txt', 'file content goes here');
$zip->addFile('data.txt', 'entryname.txt');
$zip->close();
が.gz
ファイルの作成を:
try
{
$a = new PharData('archive.tar');
// ADD FILES TO archive.tar FILE
$a->addFile('data.xls');
$a->addFile('index.php');
// COMPRESS archive.tar FILE. COMPRESSED FILE WILL BE archive.tar.gz
$a->compress(Phar::GZ);
// NOTE THAT BOTH FILES WILL EXISTS. SO IF YOU WANT YOU CAN UNLINK archive.tar
unlink('archive.tar');
}
catch (Exception $e)
{
echo "Exception : " . $e;
}
archive.tarをリンク解除する前に、ファイルがまだ開いていないことを確認してください。例を試している間にエラーが発生しました - unset($ a)トリックを済ませました^^ –
は、悪意のある入力から保護する方法についての注意事項セクションに代わり
http://php.net/manual/en/function.system.php
ご注意をシステムコマンドを使用します。
EDIT:あなたはGZIPファイルを作成するためにzipファイルを作成するためにPHPのZipクラスを使用して、ZLibできるオープン()コマンドを使用して新しいzipファイルを作成するためにhttp://www.php.net/manual/en/class.ziparchive.php
ありがとう、しかし、シェルから離れようとしています。多くの共有ホスティングでは、これらの機能が無効になっています。 –
@ el7r私の編集をチェックし、それがあなたのために働くかどうかを確認してください –
をZIPARCHIVEクラスを使用します。
.zip
ファイルの作成:あなたはtar.gz形式を作成したいとあなたがPHP 5.3+を使用している場合、あなたはPharDataクラスを使用することができます
$file = "test.txt";
$gzfile = "test.gz";
$fp = gzopen($gzfile, 'w9'); // w == write, 9 == highest compression
gzwrite($fp, file_get_contents($file));
gzclose($fp);
ありがとう、それは、同じ方法でそれを抽出することができますか? –
もちろん!上にリンクされているドキュメントをチェックしてください。 – foxy
Tar-aを作成する方法は非常に簡単ですPHP内で直接使用することができます - LGPLのDennis WronkaのCLASSはsourceforgeにありますので、商用スクリプトでも使用できます。
<?php
/**
* @package PHPClassCollection
* @subpackage Tar
* @link classes
* @author Dennis Wronka <[email protected]>
*/
/**
* @package PHPClassCollection
* @subpackage Tar
* @link classes
* @author Dennis Wronka <[email protected]>
* @version 1.1
* @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html LGPL 2.1
*/
class tar
{
/**
* The name of the tar-file to create.
*
* @var string
*/
var $filename;
/**
* The list of files to add to the archive.
*
* @var array
*/
var $filelist=array();
/**
* Constructor
*
* @param string $filename
*/
function tar($filename)
{
$this->filename=$filename;
}
/**
* Add a file.
*
* @param string $filename
*/
function add($filename)
{
if ((file_exists($filename)) && (is_readable($filename)))
{
$this->filelist[]=$filename;
}
}
/**
* Write the tar-file.
*
* @return bool
*/
function write()
{
sort($this->filelist);
[email protected]($this->filename,'w');
if ($tarfile==false)
{
return false;
}
for ($x=0;$x<count($this->filelist);$x++)
{
$filename=$this->filelist[$x];
if ((is_dir($this->filelist[$x])) && (substr($this->filelist[$x],-1)!='/'))
{
$filename.='/';
}
while (strlen($filename)<100)
{
$filename.=chr(0);
}
$permissions=sprintf('%o',fileperms($this->filelist[$x])).chr(0);
while (strlen($permissions)<8)
{
$permissions='0'.$permissions;
}
$userid=sprintf('%o',fileowner($this->filelist[$x])).chr(0);
while (strlen($userid)<8)
{
$userid='0'.$userid;
}
$groupid=sprintf('%o',filegroup($this->filelist[$x])).chr(0);
while (strlen($groupid)<8)
{
$groupid='0'.$groupid;
}
if (is_dir($this->filelist[$x]))
{
$filesize='0'.chr(0);
}
else
{
$filesize=sprintf('%o',filesize($this->filelist[$x])).chr(0);
}
while (strlen($filesize)<12)
{
$filesize='0'.$filesize;
}
$modtime=sprintf('%o',filectime($this->filelist[$x])).chr(0);
$checksum=' ';
if (is_dir($this->filelist[$x]))
{
$indicator=5;
}
else
{
$indicator=0;
}
$linkname='';
while (strlen($linkname)<100)
{
$linkname.=chr(0);
}
$ustar='ustar '.chr(0);
if (function_exists('posix_getpwuid'))
{
$user=posix_getpwuid(octdec($userid));
$user=$user['name'];
}
else
{
$user='';
}
while (strlen($user)<32)
{
$user.=chr(0);
}
if (function_exists('posix_getgrgid'))
{
$group=posix_getgrgid(octdec($groupid));
$group=$group['name'];
}
else
{
$group='';
}
while (strlen($group)<32)
{
$group.=chr(0);
}
$devmajor='';
while (strlen($devmajor)<8)
{
$devmajor.=chr(0);
}
$devminor='';
while (strlen($devminor)<8)
{
$devminor.=chr(0);
}
$prefix='';
while (strlen($prefix)<155)
{
$prefix.=chr(0);
}
$header=$filename.$permissions.$userid.$groupid.$filesize.$modtime.$checksum.$indicator.$linkname.$ustar.$user.$group.$devmajor.$devminor.$prefix;
while (strlen($header)<512)
{
$header.=chr(0);
}
$checksum=0;
for ($y=0;$y<strlen($header);$y++)
{
$checksum+=ord($header[$y]);
}
$checksum=sprintf('%o',$checksum).chr(0).' ';
while (strlen($checksum)<8)
{
$checksum='0'.$checksum;
}
$header=$filename.$permissions.$userid.$groupid.$filesize.$modtime.$checksum.$indicator.$linkname.$ustar.$user.$group.$devmajor.$devminor.$prefix;
while (strlen($header)<512)
{
$header.=chr(0);
}
fwrite($tarfile,$header);
if ($indicator==0)
{
$contentfile=fopen($this->filelist[$x],'r');
$data=fread($contentfile,filesize($this->filelist[$x]));
while (strlen($data)%512!=0)
{
$data.=chr(0);
}
fwrite($tarfile,$data);
}
}
fclose($tarfile);
return true;
}
}
?>
- 1. 複数のディレクトリから複数のtar.gzアーカイブを作成する
- 2. SharpZipLibを使用してフォルダ構造のない.tar.gzアーカイブを作成する
- 3. ファイルチャネルからZipアーカイブを作成する
- 4. Nexusはリリース(jar-depend-dependencies、WARファイル、tar.gz、zipなど)をアーカイブするのに適していますか?
- 5. phpでzipアーカイブを作成してダウンロードします
- 6. はzipアーカイブ
- 7. ファイルモードがファイルモードの場合は、ファイルストリームからアーカイブ.zipを作成します。
- 8. zipアーカイブの圧縮
- 9. 7-zipアーカイブのストリームファイル
- 10. Xcodeポストビルドスクリプトを使用してZIPアーカイブを作成する
- 11. zipアーカイブを使用してPHPで有効なzipファイルを作成できませんか?
- 12. ディレクトリのzipアーカイブを作成するためのタスクをダンプする
- 13. exec zip root path
- 14. 作者アーカイブ作成エラー: "#"、 "。"または「\」」ではなく 『 - 』 v0.75
- 15. メモリにファイルを作成し、7-zipコマンドラインを使用してzipアーカイブにプッシュしますか?
- 16. NSISで実行可能ファイルではなくzipアーカイブを生成
- 17. karaf-assembly 4.0.5 - 成功したMavenビルドの終了時にzip ard tar.gzファイルが生成されない
- 18. mysql noinstall zipアーカイブのインストール
- 19. Asp .NET tar.gzアーカイブからファイルを読む
- 20. Windowsコマンドプロンプトからタイムスタンプ付きZIPアーカイブを作成
- 21. Linuxボックスに自己解凍型zipアーカイブを作成する
- 22. PHPExcelオブジェクトから飛んでZIPアーカイブを作成する
- 23. PowerShellとWindowsツールを使ってZIPアーカイブを作成する
- 24. PowerShellの - 私は次のスクリプトを作成し、その結果<em>StackOverflowの</em>にZIPアーカイブを抽出読んZIPアーカイブ
- 25. 設定CompressionLevel.NoCompressionにZipArchiveEntry.CompressionLevel私はストアファイル用のzipアーカイブを作成するアンドロイド
- 26. なぜgradleは空のアーカイブを作成しますか?
- 27. 別のZipアーカイブ内にあるZipアーカイブのコンテンツを一覧表示することはできますか?
- 28. なぜこのAlbacore zipタスクはzipファイルを作成しないのですか?
- 29. 複数の独立した独立したzipアーカイブに大きなフォルダ(2.4 gb)をアーカイブする方法
- 30. PHP ZipArchiveはzipアーカイブを作成しません。コードで修正するものは?
あなたはPEARアーカイブを探しています。 zip形式とtar形式のバージョンがあります。 – mario