将用户活动保存到文本文件中


Save user activity to text file

在PHP中,我想将消息保存到一个文本文件中,并使用PHP读取日志文件。

以下是我目前所拥有的:

function LogUserActivity($LogFile, $Activity){
    $UserIp = $_SERVER['REMOTE_ADDR'];
    $TimeRef = date('d-m-Y H:i T');
    $Handle = fopen($LogFile, 'a');
    $Data = $UserIp.'|'.$TimeRef.'|'.$Activity.'~';
    fwrite($Handle, $Data);
    fclose($Handle);
}
function ReadUserActivity($LogFile){
    global $log;
    $LogFile = file_get_contents($LogFile);
    $ExplodedLogFile = explode("~", $LogFile);
    $ArrayNum = count($ExplodedLogFile);
    $i = 0;
    while ( $i <= $ArrayNum ){
        $log[$i] = explode("|", $ExplodedLogFile[$i]);
        $i++;
    }
}

我建议使用mySQL数据库:

http://www.thesitewizard.com/faqs/what-is-mysql-database.shtml

但如果你坚持使用它,这里有一些评论可以帮助你理解。。

<?php
//create file ($LogFile -> filename, $Activity -> type of activity)
function LogUserActivity($LogFile, $Activity){
    //get user's ip
    $UserIp = $_SERVER['REMOTE_ADDR'];
    //get time
    $TimeRef = date('d-m-Y H:i T');
    //create file
    $Handle = fopen($LogFile, 'a');
    //file contents
    $Data = $UserIp.'|'.$TimeRef.'|'.$Activity.'~';
    //write data to file
    fwrite($Handle, $Data);
    //close file
    fclose($Handle);
}
//read data from file ($LogFile -> filename)
function ReadUserActivity($LogFile){
    //variable for storing data on file
    global $log;
    //function to get log file's data
    $LogFile = file_get_contents($LogFile);
    //separate each entry and put it in an array
    $ExplodedLogFile = explode("~", $LogFile);
    //determine number of logs
    $ArrayNum = count($ExplodedLogFile);
    //incrementable variable
    $i = 0;
    //loop to search through logs
    while ( $i <= $ArrayNum ){
        //separate each log into the three parts it has and put them in an array inside the main array
        $log[$i] = explode("|", $ExplodedLogFile[$i]);
        //incrememnt i
        $i++;
    }
}
?>

在每个脚本的开头调用LogUserActivity,向它传递要写入的文件和一些消息。例如:

<?php
include('the-file-where-you-put-these-functions.php');
LogUserActivity('/tmp/example.log', 'Porkchop sandwitches!');
// the rest of your script
?>

调用脚本中用于检查日志的另一个函数。它将设置$log变量,然后可以根据需要打印出来。

或者只使用这一行:

<?php
file_put_contents("/tmp/stuff.txt", "penguins", FILE_APPEND); 
?>