PHP操作ZIP壓縮包文件的基本方法大家應(yīng)該都知道怎么做(如不了解可在本文底部學(xué)習(xí)PHP操作ZIP的基本方法),那么如何在不解壓的情況下直接讀取壓縮包中的文件呢,如直接在頁面中顯示壓縮包中的圖片?
下面就給大家演示一下如何在不解壓的情況下直接顯示壓縮包中的圖片文件
$zip_path = '12.zip';//壓縮包實際路徑
$zip = zip_open($zip_path);//利用zip_open函數(shù)打開壓縮包
while ($re = zip_read($zip)) {//讀依次讀取包中的文件
if (!zip_entry_filesize($re)) break;//如果文件大小為0退出操作
$entry_zp = zip_entry_open($zip,$re,'rb');//讀取包中文件
$ext = pathinfo(zip_entry_name ($re),PATHINFO_EXTENSION);//獲取圖片文件擴展名
$buf = zip_entry_read($re,zip_entry_filesize($re));//讀取文件二進制數(shù)據(jù)
echo sprintf('img src="data:image/%s;base64,%s">', $ext, base64_encode($buf));//利用base64_encode函數(shù)轉(zhuǎn)換讀取到的二進制數(shù)據(jù)并輸入輸出到頁面中
zip_entry_close($re);//關(guān)閉打開的壓縮包中的文件
}
zip_close($zip);//關(guān)閉壓縮包文件
這段代碼最主要的就是利用base64_encode把圖片文件的二進制數(shù)據(jù)轉(zhuǎn)換成瀏覽器可讀的Base64圖片數(shù)據(jù)
注意:在使用PHP的ZIP FILE系列函數(shù)時請確認你的PHP.ini文件中已開啟了php_zip.dll擴展庫,且在PHP安裝目錄中的ext文件夾中是否有php_zip.dll (我用的是Windows系統(tǒng))。如果php_zip.dll不存在可以到下面這個PHP官方PECL擴展包站上獲取
PHP官方PECL擴展包站地址:http://pecl.php.net/package/zip
選擇與你PHP版本相應(yīng)的壓縮包;
Windows下可以直接把壓縮包中的php_zip.dll文件拖放至PHP安裝目錄中的ext文件夾中即可;
Linux系統(tǒng)需要編譯后再修改PHP的配置文件
附上PHP操作Zip File的基本函數(shù)
函數(shù) |
描述 |
PHP |
zip_close() |
關(guān)閉 ZIP 文件。 |
4 |
zip_entry_close() |
關(guān)閉 ZIP 文件中的一個項目。 |
4 |
zip_entry_compressedsize() |
返回 ZIP 文件中的一個項目的被壓縮尺寸。 |
4 |
zip_entry_compressionmethod() |
返回 ZIP 文件中的一個項目的壓縮方法。 |
4 |
zip_entry_filesize() |
返回 ZIP 文件中的一個項目的實際文件尺寸。 |
4 |
zip_entry_name() |
返回 ZIP 文件中的一個項目的名稱。 |
4 |
zip_entry_open() |
打開 ZIP 文件中的一個項目以供讀取。 |
4 |
zip_entry_read() |
讀取 ZIP 文件中的一個打開的項目。 |
4 |
zip_open() |
打開 ZIP 文件。 |
4 |
zip_read() |
讀取 ZIP 文件中的下一個項目。 |
4 |
您可能感興趣的文章:- php利用ZipArchive類操作文件的實例
- php ZipArchive實現(xiàn)多文件打包下載實例
- PHP生成zip壓縮包的常用方法示例
- php解壓縮zip和rar壓縮包文件的方法
- 實例介紹PHP中zip_open()函數(shù)用法
- PHP zip壓縮包操作類完整實例
- PHP實現(xiàn)打包zip并下載功能
- PHP實現(xiàn)將多個文件壓縮成zip格式并下載到本地的方法示例
- PHP使用zlib擴展實現(xiàn)GZIP壓縮輸出的方法詳解
- linux服務(wù)器安裝PHP擴展zip,zlib方法
- 基于PHP安裝zip拓展,以及l(fā)ibzip安裝的問題
- php 解壓zip壓縮包內(nèi)容到指定目錄的實例
- 如何使用php生成zip壓縮包