はじめに
RARファイルの解凍をやりたかったけど、公式ではZipArchiveしかないみたい。
PECLの方にRarArchiveというのがあるみたいなので、これを使う。
環境
- Windows 7
- PHP 7.1
RarArchiveのダウンロードと設定
ここからダウンロード。
僕はWinなのでVer.4.0.0 の「DLL」 -> 「7.1 Non Thread Safe (NTS) x86」をダウンロードしました。
ダウンロードしたやつの中身に「php_rar.dll」があるので、それを php の ext フォルダに配置。
php.ini
に以下追記。
php.ini
[PHP]
extension=php_rar.dll
追記後、サーバー再起動。
解凍
$archive = RarArchive::open("dir/");
$entries = $archive->getEntries();
foreach ($entries as $entry) {
$entry->extract($to_dir);
}
$archive->close();
ZipArchive との違いは、一度getEntries
しないと中身がとれない。
ついでに、パスに日本語が含まれていると Failed to open になるっぽいです。
さいごに
公式で扱える形式増やして(懇願