我将创建在我的网页上写入所有活动日志的功能。我使用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
,但未创建新行。
请帮帮我
答案 0 :(得分:0)
不同的操作系统对行结尾使用不同的字符。在类似unix的系统上,行结尾是\n
(称为LF),而窗口使用\r\n
(称为CRLF)。大多数Windows程序可以显示\n
但不是全部。
最好的方法是使用PHP_EOL
常量,让服务器决定使用哪些行结尾。
额外的好奇心:Mac OSX现在使用LF,但是较旧的mac仅使用CR。