您好,登錄后才能下訂單哦!
這篇文章主要介紹了php操作zip在不解壓縮包的情況下如何顯示壓縮包中的圖片,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
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ù)時(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 |
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“php操作zip在不解壓縮包的情況下如何顯示壓縮包中的圖片”這篇文章對大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。