sg <

PHPでZipArchiveをつかいたけど使えない、けど使えた

環境(ローカルサーバ)

ソフトウェア

  • OS Ubuntu 18.04.1 LTS
  • PHP PHP 7.2.10-0ubuntu0.18.04.1 (cli) (built: Sep 13 2018 13:45:02) ( NTS )
  • MYSQL Server version: 5.7.24-0ubuntu0.18.04.1 (Ubuntu)
  • HTTPサーバ Apache/2.4.29 (Ubuntu)

はじめに

PHP上でダウンローとしてきたZIPファイルを、サーバ上のテンポラリディレクトリに配置し、それを解凍するプログラムを書いていた。

http://php.net/manual/ja/ziparchive.extractto.php

このZIPArchiveクラスを使おうと思ったが、

$zip = new ZipArchive;
$res = $zip->open('test_im.zip');
if ($res === TRUE) {
    $zip->extractTo('/my/destination/dir/', array('pear_item.gif', 'testfromfile.php'));
    $zip->close();
    echo '成功';
} else {
    echo '失敗';
}

全く動きません。

~/デスクトップ$ sudo apt -y search php7.2-zip
ソート中... 完了
全文検索... 完了  
php7.2-zip/bionic-updates,bionic-security 7.2.15-0ubuntu0.18.04.1 amd64
  Zip module for PHP

~/デスクトップ$ sudo apt -y install php7.2-zip
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
  ca-certificates-mono cli-common libgdiplus libglib2.0-cil libgtk2.0-cil libmono-addins-gui0.2-cil libmono-addins0.2-cil
  libmono-cairo4.0-cil libmono-corlib4.5-cil libmono-i18n-west4.0-cil libmono-i18n4.0-cil libmono-posix4.0-cil
  libmono-security4.0-cil libmono-sharpzip4.84-cil libmono-system-configuration4.0-cil libmono-system-core4.0-cil
  libmono-system-drawing4.0-cil libmono-system-security4.0-cil libmono-system-xml4.0-cil libmono-system4.0-cil mono-4.0-gac
  mono-gac mono-runtime mono-runtime-common mono-runtime-sgen
これを削除するには 'sudo apt autoremove' を利用してください。
以下のパッケージが新たにインストールされます:
  php7.2-zip
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 307 個。
20.3 kB のアーカイブを取得する必要があります。
この操作後に追加で 89.1 kB のディスク容量が消費されます。
取得:1 http://jp.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 php7.2-zip amd64 7.2.15-0ubuntu0.18.04.1 [20.3 kB]
20.3 kB を 0秒 で取得しました (177 kB/s)
y以前に未選択のパッケージ php7.2-zip を選択しています。
(データベースを読み込んでいます ... 現在 198760 個のファイルとディレクトリがインストールされています。)
.../php7.2-zip_7.2.15-0ubuntu0.18.04.1_amd64.deb を展開する準備をしています ...
php7.2-zip (7.2.15-0ubuntu0.18.04.1) を展開しています...
php7.2-zip (7.2.15-0ubuntu0.18.04.1) を設定しています ...

Creating config file /etc/php/7.2/mods-available/zip.ini with new version
libapache2-mod-php7.2 (7.2.15-0ubuntu0.18.04.1) のトリガを処理しています ...

PHPのバージョンによってはremiリポジトリを使ったり面倒だが、吾輩のバージョンでは特に問題なさそうであった。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください