この記事では、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_zip.dll 拡張ライブラリが PHP.ini ファイルで有効になっていること、および 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 ファイルに添付します。
説明 | PHP | |
---|---|---|
ZIP ファイルを閉じます。 | 4 | |
ZIP ファイル内のエントリを閉じます。 | 4 | |
ZIP ファイル内の項目の圧縮サイズを返します。 | 4 | |
ZIP ファイル内のエントリの圧縮方法を返します。 | 4 | |
ZIP ファイル内のエントリの実際のファイル サイズを返します。 | 4 | |
ZIP ファイル内のエントリの名前を返します。 | 4 | |
ZIP ファイル内のエントリを読み取り用に開きます。 | 4 | |
ZIP ファイル内の開いているエントリを読み取ります。 | 4 | |
ZIP ファイルを開きます。 | 4 | |
ZIP ファイル内の次の項目を読み取ります。 | 4 |
興味があるかもしれない記事:
チェックの実装方法- php の in 関数 解析例の詳細説明Linux での php-fpm プロセスが多すぎることによるメモリ枯渇の問題の解決方法の詳細説明php チェックイン機能実装メソッド例の詳細分析##
以上がphpを使ってzipを操作し、圧縮されたパッケージ内の画像を解凍せずに表示する方法を解説します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。