程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> Codeigniter 框架 Zip 編碼類中 read_dir 方法的 bug

Codeigniter 框架 Zip 編碼類中 read_dir 方法的 bug

編輯:關於PHP編程

Codeigniter 框架的壓縮解碼類,其中的 read_dir 方法,允許你壓縮一個服務器某處存在的文件夾(以及它裡面的文件和子文件夾)。

提供一個文件夾路徑,zip 類將遞歸讀取它並重新創建添加到存檔。 你所提供的路徑下面的所有文件都會被壓縮進來,也包括所有子文件夾。

例如:

$path = '/path/to/your/directory/';
$this->zip->read_dir($path);

默認 Zip 文件會把第一個參數的完整文件夾路徑保存到Zip文件裡。如果你想忽略目標路徑之前的文件夾結構,你可以傳遞 FALSE (布爾值) 到第二個參數。

例如:

$path = '/path/to/your/directory/';
$this->zip->read_dir($path, false);

這將創建一個包括 “directory” 在內的 ZIP 文件, 所有的子文件夾被正確地保存在裡面, 但是不包括此文件夾 /path/to/your.

官方文檔只提到了兩個參數,源碼裡其實設置了三個:

read_dir($path, $preserve_filepath = TRUE, $root_path = NULL)

而通常,在框架運行環境內部,取得路徑有幾種方法:

APPPATH – 對應 Codeigniter 根目錄,即 application/
FCPATH – 對應磁盤分區根目錄,即 D:\xxx\codeigniter 根目錄\

當使用 FCPATH 之類的方式獲取目錄絕對路徑時,由於源碼中處理了路徑中反斜槓,導致前後 $root_path 值不一致,會出現第二參數 false 設置無效的問題。

參考資料:http://codeigniter.org.cn/user_guide/libraries/zip.html

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved