2012-07-26 71 views
1

我有以下代碼。 在我的基本目錄,其中主要的CodeIgniter PHP索引文件是,我有權限的目錄pagemodules 666 我想要做的是寫在下面的文件名格式的文件:.main.control.function.var.something.mod診斷write_file在CodeIgniter中不起作用的原因

要動態創建的文件在這個文件夾中,我使用下面的代碼來檢查文件是否存在,如果不存在,用它中的一個空格創建它。

唯一的問題是,我每次都想出一個失敗。我曾嘗試將目錄移動到每個可能的目錄中,以查看它是否是文件路徑問題,但這沒有幫助。 CodeIgniter wiki沒有多大幫助,因爲它沒有提供關於如何診斷文件助手錯誤的指針。並沒有任何錯誤拋出......

我怎樣才能讓CodeIgniter拋出一個錯誤我可以做些什麼?

我可以開始使用fopen,但我更喜歡使用CodeIgniter,因爲易於使用。

error_reporting(E_ALL); 
ini_set("display_errors", 1); 
$this->load->helper('file'); 
if($createfile!=null) 
{ 
    $filepath = './pagemodules/'.str_replace('/','.',$data['page']->url).'.mod'; 
    $file = read_file($filepath); 
    if($file === false) 
    { 
     $test = write_file($filepath,' ','w+'); 
     if($test) 
     { 
      echo "we have written $filepath"; 
     } 
     else 
     { 
      echo 'fail '.$filepath; 
     } 
    } 
} 
+0

將權限設置爲777,並再次嘗試。 – gorelative 2012-07-26 15:00:41

+0

這隻會增加執行權,我不需要這些,只是閱讀和寫作,666就足夠了。 777沒有幫助。 – Tschallacka 2012-07-26 15:05:19

+3

雖然切換到777幫助嗎?您應該隔離假設並確保它確實是寫權限問題。什麼用戶/組是服務器(腳本)運行?什麼是目錄/文件的用戶/組? – Brendan 2012-07-26 15:39:56

回答

2

好,只是用於調試目的:

爲了得到pagemodules絕對路徑(如果它位於笨的index.php目錄)更換'./pagemodules/'FCPATH.'pagemodules/

爲了避免無效的路徑,可以使用...

get_filenames('path/to/pagemodules/') 

...得到它的文件,並證實它是否correct.This函數返回和數組的文件名到它。

請記住,您可以使用FCPATH常量來獲取Codeigniter安裝的絕對路徑。

+0

這解決了我的問題問題。非常感謝manix! – Tschallacka 2012-07-27 18:55:33

+1

非常歡迎你:) – manix 2012-07-27 18:58:19