Phar拡張のストリームラッパーでtar.gzファイルを開く

PHP5.3.0から標準で組み込まれるようになったPhar拡張ですが、こいつはPharアーカイブを扱うだけではなくtarやtar.gzも扱えます。また、それらを扱うためのストリームラッパーを提供しています。
ということで、ホントにPhar拡張を使ってtar.gzファイルを展開することなく直接扱えるか試してみました。

とりあえずreadfileしてみる

[tanaka@delta phar]$ php -r  'readfile("phar://senkyo.tar.gz/senkyo/ikou/touhyo.txt", false);'
その一票が日本を救う。
GO!選挙!

できた。選挙行きましょう。

opendirもできるらしいのでやってみる

[tanaka@delta phar]$ php -r '$dh = opendir("phar://senkyo.tar.gz/senkyo"); while (($file = readdir($dh)) !== fal
se) {echo $file, PHP_EOL;} closedir($dh);'
gimu
ikou
joushiki
zettai

良い感じに読めるよ。なかなかなかなか。

ほかにも書き出しもできるらしいです。これは使える。Phar extensionのstream wrapper!