php操作zip在不解壓縮包的情況下顯示壓縮包中的圖片
PHP操作ZIP壓縮包文件的基本方法大家應(yīng)該都知道怎么做(如不了解可在本文底部學(xué)習(xí)PHP操作ZIP的基本方法),那么如何在不解壓的情況下直接讀取壓縮包中的文件呢,如直接在頁面中顯示壓縮包中的圖片?
下面就給大家演示一下如何在不解壓的情況下直接顯示壓縮包中的圖片文件
$zip_path = '12.zip';//壓縮包實(shí)際路徑 $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);//獲取圖片文件擴(kuò)展名 $buf = zip_entry_read($re,zip_entry_filesize($re));//讀取文件二進(jìn)制數(shù)據(jù) echo sprintf('<img src="data:image/%s;base64,%s">', $ext, base64_encode($buf));//利用base64_encode函數(shù)轉(zhuǎn)換讀取到的二進(jìn)制數(shù)據(jù)并輸入輸出到頁面中 zip_entry_close($re);//關(guān)閉打開的壓縮包中的文件 } zip_close($zip);//關(guān)閉壓縮包文件
這段代碼最主要的就是利用base64_encode把圖片文件的二進(jìn)制數(shù)據(jù)轉(zhuǎn)換成瀏覽器可讀的Base64圖片數(shù)據(jù)
注意:在使用PHP的ZIP FILE系列函數(shù)時請確認(rèn)你的PHP.ini文件中已開啟了php_zip.dll擴(kuò)展庫,且在PHP安裝目錄中的ext文件夾中是否有php_zip.dll (我用的是Windows系統(tǒng))。如果php_zip.dll不存在可以到下面這個PHP官方PECL擴(kuò)展包站上獲取
PHP官方PECL擴(kuò)展包站地址: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 文件中的一個項(xiàng)目。 | 4 |
zip_entry_compressedsize() | 返回 ZIP 文件中的一個項(xiàng)目的被壓縮尺寸。 | 4 |
zip_entry_compressionmethod() | 返回 ZIP 文件中的一個項(xiàng)目的壓縮方法。 | 4 |
zip_entry_filesize() | 返回 ZIP 文件中的一個項(xiàng)目的實(shí)際文件尺寸。 | 4 |
zip_entry_name() | 返回 ZIP 文件中的一個項(xiàng)目的名稱。 | 4 |
zip_entry_open() | 打開 ZIP 文件中的一個項(xiàng)目以供讀取。 | 4 |
zip_entry_read() | 讀取 ZIP 文件中的一個打開的項(xiàng)目。 | 4 |
zip_open() | 打開 ZIP 文件。 | 4 |
zip_read() | 讀取 ZIP 文件中的下一個項(xiàng)目。 | 4 |
- php利用ZipArchive類操作文件的實(shí)例
- php ZipArchive實(shí)現(xiàn)多文件打包下載實(shí)例
- PHP生成zip壓縮包的常用方法示例
- php解壓縮zip和rar壓縮包文件的方法
- 實(shí)例介紹PHP中zip_open()函數(shù)用法
- PHP zip壓縮包操作類完整實(shí)例
- PHP實(shí)現(xiàn)打包zip并下載功能
- PHP實(shí)現(xiàn)將多個文件壓縮成zip格式并下載到本地的方法示例
- PHP使用zlib擴(kuò)展實(shí)現(xiàn)GZIP壓縮輸出的方法詳解
- linux服務(wù)器安裝PHP擴(kuò)展zip,zlib方法
- 基于PHP安裝zip拓展,以及l(fā)ibzip安裝的問題
- php 解壓zip壓縮包內(nèi)容到指定目錄的實(shí)例
- 如何使用php生成zip壓縮包
相關(guān)文章
thinkphp框架實(shí)現(xiàn)刪除和批量刪除
這篇文章主要為大家詳細(xì)介紹了thinkPHP框架實(shí)現(xiàn)刪除和批量刪除的相關(guān)資料,需要的朋友可以參考下2016-06-06PHPwind整合最土系統(tǒng)用戶同步登錄實(shí)現(xiàn)方法
我的任務(wù)就是讓PHPWind和最土登錄同步,領(lǐng)導(dǎo)也知道我的技術(shù)能力有限,不怎么高要求,所以讓我先實(shí)現(xiàn),再考慮其他。趕鴨子上架,開工了。2010-12-12PHP隨機(jī)數(shù)生成代碼與使用實(shí)例分析
在PHP程序設(shè)計(jì)中,隨機(jī)數(shù)的生成尤為重要。我們需要用隨機(jī)數(shù)在我們的頁面中展示隨機(jī)記錄(比如圖片、用戶記錄、文章ID等)。2011-04-04PHP curl 或 file_get_contents 獲取需要授權(quán)頁面的方法
本篇文章主要介紹了PHP curl 或 file_get_contents獲取需要授權(quán)頁面的方法,具有很好的參考價(jià)值。下面跟著小編一起來看下吧2017-05-05