[PHP-users 12194] Re: ディレクトリ以下のファイルの圧縮解凍について

YAMADA php-users@php.gr.jp
Thu, 12 Dec 2002 12:26:59 +0900


>	system( "tar czvf TestPackage.tar.gz  /Testdir" , $ret );

system( "(cd /Testdir ; tar czvf ../TestPackage.tar.gz  .)" , $ret );

とかで動いたりしないかな。
#試してません。すんません


月野 愛美 さんは書きました:
>はじめまして。月野と申します。
>いつもお世話になっております。
>
>ディレクトリ以下のファイルを圧縮する方法について教えて頂きたくメールしまし
>た。
>
>/TestDir/test1.txt
>     test2.txt
>	test3.txt
>		 
>というディレクトリがあったとして、testDir以下を圧縮したいのですが、
>例えばsystem()を使って
>
>	system( "tar czvf TestPackage.tar.gz  /Testdir" , $ret );
>	
>	
>とすると、TestPackage.tar.gzができるのですが、
>コマンドライン上で展開すると、(当たり前なのですが)
>/TestDir/test1.txt
>	test2.txt
>	test3.txt
>
>という形式でファイルが作成されてしまいます。
>
>展開後、TestDirディレクトリ無しに、
>直接	test1.txt
>	test2.txt
>	test3.txt
>の形式でファイルを作成したいのですが、どのようにしたらよいでしょうか。
>
>Linuxのコマンドの問題なのですが、
>他にもsystem()を使用せずに圧縮ファイルを作る方法等ありましたら教えていただき
>たく
>思います。
>
>ディレクトリをopenして、ファイルを一旦配列に格納し
>"tar czvf TestPackage.tar.gz  /Testdir/test1.txt test2.txt test3.txt";
>という文字列を作成する方法も考えましたが…
>(結局system()を使用するのですが)
>
>/********************* 例 **************************/
>$work="";
>if ( $handle = opendir( "/TestDir" ) ) {
>	while ( ( $file = readdir($handle)) !== FALSE ) {
>		if ( $file != "." && $file != "..") {    
>			$work .= $file . " ";
>			$i++;
>		}
>	}
>}
>
>$cmd= "tar czvf TestPackage.tar.gz  /Testdir/" . $work ;
>system($cmd.$ret);
>
>/**************************************************/
>
>
>一番シンプルな圧縮方法をご助言して頂きたいです。
>よろしくお願いします。
>
>
>_________________________________________________________________
>ネットを使うひとに有利な特典いっぱい MSN カード  http://card.msn.co.jp/ 
>
>_______________________________________________
>PHP-users mailing list
>PHP-users@php.gr.jp
>http://ns1.php.gr.jp/mailman/listinfo/php-users