0

在 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++;
    }
}
4

2 回答 2

2

我建议使用 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++;
    }
}
?>
于 2013-02-05T15:07:43.583 回答
1

在每个脚本的开头调用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); 
?>
于 2013-02-05T15:03:04.827 回答