PHP Cli将文本写入文件

时间:2014-03-06 18:56:46

标签: php fopen fwrite

我正在尝试运行CLI php脚本,虽然大多数都可以运行,但我无法转储日志文件。

代码:

    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/assets/logs/03-06-2014.txt是{{ 1}}'d这是正确的。

我确保写入的目录具有0777访问权限。

我可以做些什么来完成这项工作?我所要做的就是编写一个var_dump的日志文件,但是要从cli运行它。

我已经通过正常登录尝试了,root登录和文件永远不会被写入。

服务器是Ubuntu 13.10服务器,PHP 5.5.3

1 个答案:

答案 0 :(得分:1)

你有

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

但是,你在fopen函数中使用$ logile

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

所以,改为

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