JQuery& AJAX调用追加自定义TXT日志文件

时间:2017-10-10 09:51:32

标签: php jquery ajax logging

我正在尝试将日期附加到自定义日志文件以跟踪特定链接上的点击,但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 个答案:

答案 0 :(得分:2)

请勿使用w+打开您的文件,因为它会截断整个文件,而是使用模式a,如&#34;附加&#34;。

请参阅fopen

答案 1 :(得分: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 +模式打开文件,该文件打开文件进行读/写并擦除文件内容或创建新文件(如果该文件不存在)。文件指针从文件的开头开始。因此一切都被覆盖了。 如果您以a或+模式打开文件,则可以将数据附加到文件中。

有关php文件的更多详细信息,请访问here