2014-03-06 137 views
0

我試圖運行一個CLI php腳本,雖然它的大部分工作,我無法轉儲日誌文件。PHP Cli將文本寫入文件

代碼:

private function WriteLogForCLI($msg){ 
     try{ 
      $ttw = " *************************************************** " . PHP_EOL; 
      $ttw .= " *" . PHP_EOL; 
      $ttw .= " * TIME STAMP: " . date("m/d/Y H:i:s"); 
      $ttw .= " *" . PHP_EOL; 
      $ttw .= " * $msg" . PHP_EOL; 
      $ttw .= " *" . PHP_EOL; 
      $ttw .= " *************************************************** " . PHP_EOL; 
      $logfile = str_replace('//', '/', FCPATH . 'assets/logs/' . date("m-d-Y") . '.txt');     
      $fh = fopen($logile, 'wb');     
      //var_dump($fh); 
      //var_dump($ttw);    
      fwrite($fh, $ttw); 
      fclose($fh);     
      //var_dump($logfile); 
     }catch(Exception $e){ 
      var_dump($e->getMessage()); 
     } 
    } 

$logfile路徑是正確的,並且是在哪裏,這個文件應該所在的絕對位置...比​​如在/ var/WWW/the_site /資產/日誌/ 03-06- 2014.txt是var_dump'd這是正確的。

我已確保寫入的目錄具有0777訪問權限。

我能做些什麼來完成這項工作?我所要做的就是編寫一個有$msg的日誌文件,但是它可以從cli運行。

我試過用我的正常登錄,並且根登錄和文件永遠不會被寫入。

Server是Ubuntu的13.10服務器,使用PHP 5.5.3

+3

更改$ fh = fopen($ logile,的WB');到$ fh = fopen($ logfile,'wb'); – kraysak

+0

omfg ...認真! LMAO哦......今天是什麼......是的......想發佈這個答案 – Kevin

回答

1

你有

$logfile = str_replace('//', '/', FCPATH . 'assets/logs/' . date("m-d-Y") . '.txt'); 

但是,你正在使用$ logile在fopen函數

$fh = fopen($logile, 'wb'); 

因此,改變

$fh = fopen($logfile, 'wb');