2017-10-10 71 views
2

我想追加日期自定义日志文件,以跟踪特定链接的点击,不过在TXT文件都被覆盖:jQuery和AJAX调用,以追加到自定义的TXT日志文件

$('#cal').click(function() { 
$.ajax 
    ({ 
     url: 'caltrack.php', 
     data: {caltrack: 'true'}, 
     type: 'post', 
     success: function() 
     { 
      console.log('success'); 
     } 
    }); 
}); 

PHP :

<?php 
error_reporting(E_ALL); 
$ip = preg_replace('#[^0-9.]#', '', getenv('REMOTE_ADDR')); 
$date = date('Y-m-d h:i:s a', time()); 
$data = $date.' - '.$ip.''; 
$f = fopen('caltrack.txt', 'w+'); 
fwrite($f, $data); 
fclose($f); 
?> 

如何每次追加一行新文本?

回答

2

请勿使用w+打开文件,因为它会截断整个文件,而与模式a中的“append”一样。

fopen

1

改变你的PHP代码如下:

<?php 
    error_reporting(E_ALL); 
    $ip = preg_replace('#[^0-9.]#', '', getenv('REMOTE_ADDR')); 
    $date = date('Y-m-d h:i:s a', time()); 
    $data = $date.' - '.$ip.''; 
    $f = fopen('caltrack.txt', 'a'); 
    fwrite($f, $data); 
    fclose($f); 
?> 

那么,什么是你做错了什么?实际上,您正在以w +模式打开一个文件,打开文件进行读取/写入,并擦除文件内容或创建一个新文件(如果文件不存在)。文件指针从文件的开始处开始。因此一切都被覆盖。 在这里,如果你打开文件在一个或一个+模式,那么你可以附加你的数据到你的文件。

有关php文件的更多细节可以在here找到。