php操作zip在不解壓縮包的情況下顯示壓縮包中的圖片相關講解

來源:互聯網
上載者:User
本文簡單介紹了PHP操作ZIP壓縮包時需要在不解壓的情況下如何直接顯示其中的圖片或檔案,方法很簡單主要利用了PHP中的Zip File 系列函數,base64_encode函數,希望對大家能有所啟發

PHP操作ZIP壓縮包檔案的基本方法大家應該都知道怎麼做(如不瞭解可在本文底部學習PHP操作ZIP的基本方法),那麼如何在不解壓的情況下直接讀取壓縮包中的檔案呢,如直接在頁面中顯示壓縮包中的圖片?

下面就給大家示範一下如何在不解壓的情況下直接顯示壓縮包中的圖片檔案

$zip_path = '12.zip';//壓縮包實際路徑$zip = zip_open($zip_path);//利用zip_open函數開啟壓縮包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));//讀取檔案位元據 echo sprintf('<img src="data:image/%s;base64,%s">', $ext, base64_encode($buf));//利用base64_encode函數轉換讀取到的位元據並輸入輸出到頁面中 zip_entry_close($re);//關閉開啟的壓縮包中的檔案}zip_close($zip);//關閉壓縮包檔案


這段代碼最主要的就是利用base64_encode把圖片檔案的位元據轉換成瀏覽器可讀的Base64圖片資料

注意:在使用PHP的ZIP FILE系列函數時請確認你的PHP.ini檔案中已開啟了php_zip.dll擴充庫,且在PHP安裝目錄中的ext檔案夾中是否有php_zip.dll (我用的是Windows系統)。如果php_zip.dll不存在可以到下面這個PHP官方PECL擴充包站上擷取

PHP官方PECL擴充包站地址:http://pecl.php.net/package/zip

選擇與你PHP版本相應的壓縮包;
Windows下可以直接把壓縮包中的php_zip.dll檔案拖放至PHP安裝目錄中的ext檔案夾中即可;
Linux系統需要編譯後再修改PHP的設定檔

附上PHP操作Zip File的基本函數


函數 描述 PHP
zip_close() 關閉 ZIP 檔案。 4
zip_entry_close() 關閉 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實現簽到功能的方法執行個體分析de詳解

解決Linux下php-fpm進程過多導致記憶體耗盡問題詳解

php實現簽到功能的方法執行個體分析詳解

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.