要用PHP壓縮解壓文件,常用的方法是調用命令行去執行解壓縮操作
可以用exec() 、system()等函數調用shell命令
Linux下解壓縮命令是tar [-cxtzjvfpPN] 文件與目錄,tar命令可以壓縮解壓.tar、.gz、.tar.gz、.tgz、.bz2、.tar.bz2、.Z、.tar.Z、.zip這些類型的文件
Linux下默認無法使用rar格式的,要另外安裝RAR for Linux,然後使用rar和unrar命令解壓縮rar格式的壓縮文件
㈡ php如何壓縮一個文件夾裡面所有的文件到zip文件裡面
//函數:文件壓縮 //壓縮參數:需要壓縮的文件或文件夾(文件可為數組),壓縮後的zip文件名及存放路徑,壓縮類型1:文件夾2:文件,後續操作1:壓縮後下載;2:存放在伺服器上(默認為/@Upload下) //壓縮文件夾示例:Tozip("./","../".date("d-H-i-s").".zip",1,2); //壓縮文件示例: // $aaa=array("../1.txt","../2.txt"); // Tozip($aaa,"../2.zip",2);FunctionTozip($Path, $ZipFile, $Typ=1, $Todo=1){//IF(!is_writeable($Path)){Exit("文件夾不可寫!");}$Path=Str_iReplace("\\","/",($Path));IF(Is_Null($Path) OrEmpty($Path) Or!IsSet($Path)){ReturnFalse;}IF(Is_Null($ZipFile) OrEmpty($ZipFile) Or!IsSet($ZipFile)){ReturnFalse;} Include_once("inc/Class_Zip.php");$zip=NewPHPZip;IF(SubStr($Path,-1,1)=="/"){$Path=SubStr($Path,0, StrLen($Path)-1);} OB_end_clean();Switch($Typ){Case"1":$zip-ZipDir($Path, $ZipFile, $Todo);Break;Case"2":$zip-ZipFile($Path,
㈢ iis配置php
雖然 LAMP 組合很不錯,但是如果想要架設一台同時支持PHP、ASP、ASP.NET、JSP、Perl的Web虛擬主機伺服器,還是用 Windows 2003的IIS 6最好。網上有很多介紹在IIS 6上配置PHP的文章,但是那些方法不是性能不好,就是升級麻煩。下面的方法可以讓你在第一次配置好後,能夠非常方便的進行升級。
這里所說的升級,是指從某個php4版本升級到另一個php4版本,或者從某個php5版本升級到另一個php5版本,而不是指從php4升級到php5。
准備:
1、一台安裝好的 Windows 2003 伺服器,並且已經安裝了 IIS 6。
2、下載 windows 版的 PHP 二進制壓縮包
安裝:
解壓縮 PHP 二進制壓縮包到 C:\php 目錄下(這里假設 C: 盤是系統盤,即安裝了Windows 系統的盤,如果系統盤是 D: 盤,則解壓縮到 D:\php 目錄下,以此類推,下同)。
然後打開「我的電腦」->「屬性」->「高級」->「環境變數」->「系統變數」->「path」,編輯其值,在前面增加下面的路徑地址:
C:\php;C:\php\dlls;C:\php\extensions;C:\php\sapi;
將 php.ini-dist 或 php.ini-recommended 復制到 C:\Windows 目錄下,並改名為 php.ini,一般正式發布網站的伺服器用 php.ini-dist,而作為調試用的伺服器用 php.ini-recommended 更好。當然一般情況下,這個 php.ini 還是需要根據實際情況來修改的。
下面來介紹一下幾個必要的修改選項:
extension_dir = "C:\php\extensions"
這個是 PHP 擴展所放置的目錄,請確保跟你實際安裝的目錄相同。
extension=php_mbstring.dll
;extension=php_big_int.dll
extension=php_bz2.dll
extension=php_cpdf.dll
extension=php_crack.dll
extension=php_curl.dll
extension=php_db.dll
extension=php_dba.dll
extension=php_dbase.dll
extension=php_dbx.dll
extension=php_domxml.dll
;extension=php_exif.dll
;extension=php_fdf.dll
;extension=php_filepro.dll
extension=php_gd2.dll
extension=php_gettext.dll
extension=php_hyperwave.dll
extension=php_iconv.dll
;extension=php_ifx.dll
;extension=php_iisfunc.dll
extension=php_imap.dll
;extension=php_interbase.dll
extension=php_java.dll
extension=php_ldap.dll
;extension=php_mcrypt.dll
extension=php_mhash.dll
extension=php_mime_magic.dll
extension=php_ming.dll
extension=php_mssql.dll
extension=php_msql.dll
;extension=php_oci8.dll
extension=php_openssl.dll
;extension=php_oracle.dll
extension=php_pdf.dll
extension=php_pgsql.dll
;extension=php_printer.dll
extension=php_shmop.dll
;extension=php_snmp.dll
extension=php_sockets.dll
;extension=php_sybase_ct.dll
extension=php_w32api.dll
extension=php_xmlrpc.dll
extension=php_xslt.dll
extension=php_yaz.dll
extension=php_zip.dll
上面這些,開頭沒有加分號的是打開的擴展,加了分號的是沒有打開的擴展。上面的設置包含了在 Windows 2003 上默認安裝情況下可以打開所有擴展(這里列出的是 php 4 的)。
session.save_path = c:\sessions
這個是 session 文件默認保存的目錄,這個目錄必須是一個存在的目錄,不然默認的 session 功能會無效。我這里設置的是一個 ramdisk 上的一個目錄。將 session.save_path 設置在 ramdisk 上可以加快 session 處理的速度。如果你沒有安裝 ramdisk,你可以把它指定到其他盤的任何一個目錄下,如 C:\sessions 目錄、C:\Windows\Temp 目錄等。
OK,基本工作作完了,現在該配置 IIS 了。
打開「 Internet 信息服務(IIS) 管理器」,在「 Web 服務擴展」里,選擇「添加一個新的 Web 服務擴展」,擴展名可填寫「PHP ISAPI 擴展」,要求的文件選擇:C:\php\sapi\php4isapi.dll(如果安裝的是 PHP5,則此處是 C:\php\sapi\php5isapi.dll,下同),並設置擴展狀態為允許。
打開「網站」->「屬性」->「ISAPI 篩選器」->「添加」,篩選器名稱可填寫「PHP」,可執行文件仍然選擇 C:\php\sapi\php4isapi.dll。
打開「網站」->「屬性」->「主目錄」->「應用程序設置」->「配置」->「應用程序擴展」->「添加」,可執行文件還是選擇 C:\php\sapi\php4isapi.dll。擴展名填寫「.php」,動作限制為「HEAD,GET,POST」。
打開「網站」->「屬性」->「文檔」->「啟用默認內容文檔」->「添加」,可以將 index.php 添加為默認內容文檔。
然後選擇「伺服器機器名」->「所有任務」->「重新啟動 IIS」來重啟 IIS。
測試
在默認網站發布目錄下,建立一個測試頁面:
下載:phptest.php
phpinfo();
?>
如果打開這個頁面能夠看到 php 安裝配置信息,就算是安裝成功了。
如果想要更優化的執行 php 程序,可以安裝 ZendOptimizer-2.6.0-Windows-i386.exe ,這個東西安裝非常簡單,這里就不介紹了。
升級
現在升級就非常簡單了。只需要將新版本的 PHP 二進制壓縮包下載下來,將原來的 C:\php 目錄刪除,將新版本解壓縮到 C:\php 目錄中,然後重新啟動一下 IIS 就可以了。不需要修改任何配置,也不需要往 System32 目錄中復制任何文件。是不是很方便啊
㈣ PHP gzip 壓縮後和 java deflate 數據不一致的問題
gzinflate 是解壓 gzdeflate 數據的啊,現在是想壓縮後和 java deflate 壓縮的數據一致。又看了下資料,java Deflater(int level,boolean nowrap) 壓縮,如果參數 'nowrap' 為 true,則不使用 ZLIB 頭和校驗和欄位,默認好像是 false。而採用 PHP gzencode ($data , -1, FORCE_DEFLATE ) 進行壓縮,只是帶了zlib headers 信息,沒有帶 crc32 checksum,可能問題就在這兒,但是還不知道怎麼解決,還請好心的版主給點建議!
㈤ php 壓縮文件夾
php將文件夾打包成zip文件,參考代碼如下:
functionaddFileToZip($path,$zip){
$handler=opendir($path);//打開當前文件夾由$path指定。
while(($filename=readdir($handler))!==false){
if($filename!="."&&$filename!=".."){//文件夾文件名字為'.'和『..』,不要對他們進行操作
if(is_dir($path."/".$filename)){//如果讀取的某個對象是文件夾,則遞歸
addFileToZip($path."/".$filename,$zip);
}else{//將文件加入zip對象
$zip->addFile($path."/".$filename);
}
}
}
@closedir($path);
}
$zip=newZipArchive();
if($zip->open('images.zip',ZipArchive::OVERWRITE)===TRUE){
addFileToZip('images/',$zip);//調用方法,對要打包的根目錄進行操作,並將ZipArchive的對象傳遞給方法
$zip->close();//關閉處理的zip文件
}
㈥ 求一個php數字壓縮函數
PHP是有自帶的壓縮函數的
gzencode 默認使用ZLIB_ENCODING_GZIP編碼,使用gzip壓縮格式,實際上是使用defalte 演算法壓縮數據,然後加上文件頭和adler32校驗
gzdeflate 默認使用ZLIB_ENCODING_RAW編碼方式,使用deflate數據壓縮演算法,實際上是先用 LZ77 壓縮,然後用霍夫曼編碼壓縮
gzcompress ;默認使用ZLIB_ENCODING_DEFLATE編碼,使用zlib壓縮格式,實際上是用 deflate 壓縮數據,然後加上 zlib 頭和 CRC 校驗
㈦ zblog php版怎麼開啟gzip壓縮
找到並打開apache/conf目錄中的httpd.conf文件
httpd.conf中打開deflate_Mole和headers_Mole模塊,具體做法為將 如下兩句前面的#去掉:
LoadMole deflate_mole moles/mod_deflate.so
LoadMole headers_mole moles/mod_headers.so
在httpd.conf文件底部加入如下代碼配置需要壓縮的文件:
<IfMole deflate_mole>
SetOutputFilter DEFLATE
# Don』t compress images and other
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:pdf|doc)$ no-gzip dont-vary
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css
AddOutputFilterByType DEFLATE application/x-javascript
</IfMole>
重啟apache服務端
使用工具重新檢測是否開啟gzip壓縮。考慮到相關廣告檢測機制具體的gzip檢測工具訪問地址可以到搜索引擎中去查找。
2、iis7.0以上
㈧ PHP 超長字元串壓縮保存到 MYSQL 資料庫的問題
gzcompress產生特殊字元沒問題,保存時用 addslashes(),我自己的經驗是slash並沒有真的被保存,取出數據後解壓一點問題沒有。將二進制的文件保存在資料庫就這樣。如果實在不放心,壓縮後用base64_encode(),會增加1/3的量,但如果文本很長,這或許是可以忍受的。