PHP解壓縮文件函數詳解
欲使用本函數庫需先安裝 zlib,可到 http://www.zlib.net/ 取得該函數庫。 )
zclose: 關閉壓縮文件。
gzeof: 判斷是否在壓縮文件尾。
gzfile: 讀壓縮文件到數組中。
gzgetc: 讀壓縮文件中的字符。
gzgets: 讀壓縮文件中的字符串。
gzgetss: 讀壓縮文件中的字符串,并去掉 HTML 指令。
gzopen: 打開壓縮文件。
gzpassthru: 解壓縮指針后全部資料。
gzputs: 資料寫入壓縮文件。
gzread: 壓縮文件讀出指定長度字符串。
gzrewind: 重設壓縮文件指針。
gzseek: 設壓縮文件指針至指定處。
gztell: 取得壓縮文件指針處。
readgzfile: 讀出壓縮文件。
gzwrite: 資料寫入壓縮文件。
gzclose 關閉壓縮文件。
語法: boolean gzclose(int zp);
返回值: 布爾值
函數種類: 特殊文件格式
內容說明: 本函數將已打開的壓縮文件關閉。參數 zp 為壓縮文件的指針代碼。成功則返回 true 值。
參考: gzopen()
gzeof 判斷是否在壓縮文件尾。
語法: boolean gzeof(int zp);
返回值: 布爾值
函數種類: 特殊文件格式
內容說明: 本函數用來判斷目前打開的壓縮文件指針是否指到文件尾 (EOF, End OF File)。參數 zp 為壓縮文件的指針代碼。在文件尾則返回 true 值。
gzfile 讀壓縮文件到數組中。
語法: array gzfile(string filename);
返回值: 數組
函數種類: 特殊文件格式
內容說明: 本函數將壓縮文件讀出并解壓縮至數組變量中。參數 filename 為文件名稱。
gzgetc 讀壓縮文件中的字符。
語法: string gzgetc(int zp);
返回值: 字符串
函數種類: 特殊文件格式
內容說明: 本函數將壓縮文件解壓縮并取出一個字符。參數 gz 為壓縮文件打開代碼。若至文件尾則會返回 false。
gzgets 讀壓縮文件中的字符串。
語法: string gzgets(int zp, int length);
返回值: 字符串
函數種類: 特殊文件格式
內容說明: 本函數將壓縮文件解壓縮并取出指定長度的字符串。參數 gz 為壓縮文件打開代碼。參數 length 為指定字符串長度加一,意即讀出的字符串長度為 length-1。若至文件尾或至行尾即行停止,因此本函數通常用來讀取一行。
gzgetss 讀壓縮文件中的字符串,并去掉 HTML 指令。
語法: string gzgetss(int zp, int length);
返回值: 字符串
函數種類: 特殊文件格式
內容說明: 本函數將壓縮文件解壓縮并取出指定長度的字符串,并將字符串中的 HTML 或 PHP 指令去掉,返回純文字。參數 gz 為壓縮文件打開代碼。參數 length 為指定字符串長度加一,意即讀出的字符串長度為 length-1。若至文件尾或至行尾即行停止,因此本函數通常用來讀取一行。
gzopen 打開壓縮文件。
語法: int gzopen(string filename, string mode);
返回值: 整數
函數種類: 特殊文件格式
內容說明: 本函數用來打開壓縮文件。參數 filename 為文件名稱。參數 mode 為開文件的狀態。若有失敗則返回 false 值。
使用范例,下面為部份程序
<?php
$fp=gzopen("/tmp/gzfile.gz", "r");
?>
參考 gzclose()
gzpassthru 解壓縮指針后全部資料。
語法: boolean gzpassthru(int zp);
返回值: 布爾值
函數種類: 特殊文件格式
內容說明: 本函數將已打開壓縮文件文件指針后的資料全部解壓縮,并輸出至標準輸出裝置 (stdout)。參數 gz 為開文件的代碼。若有失敗則返回 false 值。
gzputs 資料寫入壓縮文件。
語法: boolean gzputs(int zp, string str, int [length]);
返回值: 布爾值
函數種類: 特殊文件格式
內容說明: 本函數其實就是 gzwrite()。參數 gz 為開文件的代碼。參數 str 為欲寫入的字符串。參數 length 可省略,為指定長度。若有失敗則返回 false 值。
gzread 壓縮文件讀出指定長度字符串。 語法: string gzread(int zp, int length); 返回值: 字符串 函數種類: 特殊文件格式 內容說明: 本函數用來讀取指定長度的字符串。參數 gz 為開文件的代碼。參數 length 為指定長度。 使用范例 <?php $filename = "/temp/sosofile.txt.gz"; $zd = gzopen($filename, "r"); $contents = gzread($zd, 10000); gzclose($zd); ?>
gzrewind 重設壓縮文件指針。
語法: boolean gzrewind(int zp);
返回值: 布爾值
函數種類: 特殊文件格式
內容說明: 本函數將重設壓縮文件的文件操作指針到文件頭處。參數 zp 為開文件代碼。
gzseek 設壓縮文件指針至指定處。
語法: int gzseek(int zp, int offset);
返回值: 整數
函數種類: 特殊文件格式
內容說明: 本函數將重設壓縮文件的文件操作指針到指定的位處。參數 zp 為開文件代碼。參數 offset 為第幾個位。成功則返回 0,失敗返回 -1。
gztell 取得壓縮文件指針處。 語法: int gztell(int zp); 返回值: 整數 函數種類: 特殊文件格式 內容說明: 本函數用來取得壓縮文件的文件操作指針在某位處。參數 zp 為開文件代碼。 使用范例 <?php $exfile=gzopen("/tmp/haha.gz", "r"); $aline=gzgets($exfile, 80); print("現在文件指針在第".gztell($exfile)."個位"); gzclose($exfile); ?>
readgzfile 讀出壓縮文件
語法: boolean readgzfile(string filename);
返回值: 布爾值
函數種類: 特殊文件格式
內容說明: 本函數將壓縮文件全部讀出并解壓縮,之后將內容送到標準輸出設備上 (stdout)。參數 filename 為文件名稱。本函數其實也可以讀取非壓縮文件至標準輸出設備中。
gzwrite 資料寫入壓縮文件。
語法: boolean gzwrite(int zp, string string, int [length]);
返回值: 布爾值
函數種類: 特殊文件格式
內容說明: 本函數用來將資料寫入指定的壓縮文件中。參數 gz 為開文件的代碼。參數 str 為欲寫入的字符串。參數 length 可省略,為指定長度。若有失敗則返回 false 值。
附上 PHP解壓zip文件函數源碼:
/**********************
*@file - path to zip file 需要解壓的文件的路徑
*@destination - destination directory for unzipped files 解壓之后存放的路徑
*@Recorded By Androidyue
*@需要使用 ZZIPlib library ,請確認該擴展已經開啟
*/
function unzip_file($file, $destination){
// 實例化對象
$zip = new ZipArchive() ;
//打開zip文檔,如果打開失敗返回提示信息
if ($zip->open($file) !== TRUE) {
die ("Could not open archive");
}
//將壓縮文件解壓到指定的目錄下
$zip->extractTo($destination);
//關閉zip文檔
$zip->close();
echo 'Archive extracted to directory';
}
//測試執行
//unzip_file("1.func.zip","1");