2013-02-05 22 views
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++; 
    } 
} 
+0

這段代碼看起來很明顯,你有什麼麻煩? –

+0

'file_put_contents(「/ tmp/stuff.txt」,「penguins」,FILE_APPEND);'將字符串'penguins'添加到/tmp/stuff.txt中,如果文件不存在則創建文件。 –

回答

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); 
?> 
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++; 
    } 
} 
?>