PHP解壓縮文件函數詳解

jopen 10年前發布 | 41K 次閱讀 PHP 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");    
來自:http://blog.csdn.net/websites/article/details/29577177

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!