无法在文件中添加换行符

时间:2017-09-25 08:23:28

标签: codeigniter

我将创建在我的网页上写入所有活动日志的功能。我使用Codeigniter 3x作为框架。这是代码。

public function writeLog($loc, $user, $activity) {
    $this->load->helper('file');
    date_default_timezone_set('Asia/Jakarta');
    $files = FCPATH . '/assets/logs/logs-' . date('Y-m-d') . ".log";
    $data = date("H:i:s") . " | User: " . $user . " from IP " . $loc . " do activity " . $activity . "\n";
    write_file($files, $data, "a");
}

当我要通过writeLog(“192.168.1.3”,“blackjack”,“login”)调用该函数时,应该这样写:

15:20:22 | blackjack from IP 192.168.1.3 do activity login

但是当我通过writeLog(“192.168.1.3”,“blackjack”,“logout”)再次调用该函数时,结果如下:

15:20:22 | blackjack from IP 192.168.1.3 do activity login15:20:39 | blackjack from IP 192.168.1.3 do activity logout

我在"\n"的末尾添加了$data,但未创建新行。

请帮帮我

1 个答案:

答案 0 :(得分:0)

不同的操作系统对行结尾使用不同的字符。在类似unix的系统上,行结尾是\n(称为LF),而窗口使用\r\n(称为CRLF)。大多数Windows程序可以显示\n但不是全部。
最好的方法是使用PHP_EOL常量,让服务器决定使用哪些行结尾。

额外的好奇心:Mac OSX现在使用LF,但是较旧的mac仅使用CR。