很多站长朋友们都不太清楚php的日志代码,今天小编就来给大家整理php的日志代码,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 php怎么记录访问者ip并生成日志 2、 php该在哪里写日志?怎么写日志?日志是做什么用的? 3、 如何有效用PHP分析超大日志(2G) 4、 php 数据库操作日志记录 5、 求php转载QQ日志代码? 6、 php日志类?? php怎么记录访问者ip并生成日志php获取访问者IP地址汇总
在很我的时候我们需要得到用户的真实IP地址,例如,日志记录,地理定位,将用户信息,网站数据分析等,其实获取IP地址很简单$_SERVER[\'REMOTE_ADDR\']就可以了。下面我们就来给大家汇总一下常用的几种获取IP地址的方法。
//方法1:
$ip = $_SERVER["REMOTE_ADDR"];
echo $ip;
//方法2:
代码如下:
$user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];
$user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"];
echo $user_IP;
//方法3:
function getRealIp()
{
$ip=false;
if(!empty($_SERVER["HTTP_CLIENT_IP"])){
$ip = $_SERVER["HTTP_CLIENT_IP"];
}
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }
for ($i = 0; $i < count($ips); $i++) {
if (!eregi ("^(10│172.16│192.168).", $ips[$i])) {
$ip = $ips[$i];
break;
}
}
}
return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
}
echo getRealIp();
//方法4:
if ($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"])
{
$ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
}
elseif ($HTTP_SERVER_VARS["HTTP_CLIENT_IP"])
{
$ip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"];
}
elseif ($HTTP_SERVER_VARS["REMOTE_ADDR"])
{
$ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];
}
elseif (getenv("HTTP_X_FORWARDED_FOR"))
{
$ip = getenv("HTTP_X_FORWARDED_FOR");
}
elseif (getenv("HTTP_CLIENT_IP"))
{
$ip = getenv("HTTP_CLIENT_IP");
}
elseif (getenv("REMOTE_ADDR"))
{
$ip = getenv("REMOTE_ADDR");
}
else
{
$ip = "Unknown";
}
echo $ip ;
//方法5:
if(getenv('HTTP_CLIENT_IP')) {
$onlineip = getenv('HTTP_CLIENT_IP');
} elseif(getenv('HTTP_X_FORWARDED_FOR')) {
$onlineip = getenv('HTTP_X_FORWARDED_FOR');
} elseif(getenv('REMOTE_ADDR')) {
$onlineip = getenv('REMOTE_ADDR');
} else {
$onlineip = $HTTP_SERVER_VARS['REMOTE_ADDR'];
}
echo $onlineip;
//方法6:
print "您的IP地址是:";
if(!empty($_SERVER["HTTP_CLIENT_IP"])){
$cip = $_SERVER["HTTP_CLIENT_IP"];
}
elseif(!empty($_SERVER["HTTP_X_FORWARDED_FOR"])){
$cip = $_SERVER["HTTP_X_FORWARDED_FOR"];
}
elseif(!empty($_SERVER["REMOTE_ADDR"])){
$cip = $_SERVER["REMOTE_ADDR"];
}
else{
$cip = "无法获取!";
}
print $cip;
保存TEXT中
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$time = gmdate("H:i:s",time()+8*3600);
$file = "123.txt" ;
$fp=fopen ("123.txt","a") ;
$txt= "$ip"."----"."$time"."\n";
fputs($fp,$txt);
?>
php该在哪里写日志?怎么写日志?日志是做什么用的?所谓的日志就是记录系统运行状态的数据。
一般是将信息记录到文本文件或数据库中。
比如:
<?php
function writeLog($msg){
$logFile = date('Y-m-d').'.txt';
$msg = date('Y-m-d H:i:s').' >>> '.$msg."\r\n";
file_put_contents($logFile,$msg,FILE_APPEND );
}
//调用上面的函数,写一条信息进日志文件
writeLog('这是测试日志信息');
?>
如何有效用PHP分析超大日志(2G)这个办法可以提高一些效率: 先把结果存在变量里, 全部读取后再存盘.
即把这段代码:
if (fwrite($handle_result, $buffer) === FALSE) {
echo "1 record failed to write into log.
";
}
else
{
echo "1 record susseccful to write into log.
";
}
替换成:
$result .= $buffer . "\r\n";
$i++;
然后在while循环之前加上:
/*初始化变量*/
$result = "";
$i = 0;
在循环结束后加上:
if (fwrite($handle_result, $result) === FALSE) {
echo "Failed to write into log.
";
}
else
{
echo "$i records have been written into log susseccfully.
";
}
php 数据库操作日志记录//先创建一个log表,有id, action, username, query, time 等字段,如果需要记录更多,可添加
$query_string = $_SERVER['QUERY_STRING'];//查询(query)的字符串,这个最好处理一下
$action = $_REQUEST['action'];//操作类型,可以自己定义。比如?action=addid=xx
//$username就是当前操作人的名字了,登录后都有的吧
if(in_array($action, array('add', 'edit','delete','update')))
{
addlog($action,$username,$query_string);
}
function addlog($action,$username,$query_string)
{
//这里可以把时间和$query_string处理一下,插入数据库
$db->query($sql);
}
大致思路就是这样的了,细节还需你自己完善
求php转载QQ日志代码?开放平台论坛:
1、QQ互联:
第一步:添加网站/应用
第二步:点击应用的“控制台”,申请上线,保证测试过程无其他因素干扰(一般不做也可以)
第三步:下载官方QQ一键登录SDK包(文档资源,左栏SDK下载)
第四步:
1.使用前先修改 comm/config.php 中的4个变量
$_SESSION["appid"];$_SESSION["appkey"];$_SESSION["callback"]; $_SESSION["scope"];
2、修改 comm/session.php 文件中的 define("MAIN_DOMAIN", ".oauth.com"); 这行代码,将后面的域名换成你自己网站的域名,前面的点不能去掉。
(有乱码:可以在config.php文件头加上:
header('Content-Type: text/html; charset=UTF-8');
)
相关:
php日志类??首先,你得有一个“日志类”,明显PHP并没有内置,所以你需要自己编写这个类。
日志模块的大概设计思路如下:
1、你得有一个数据表,记录所有的用户行为。
2、你得写一个“日志类”,这个类至少有一个方法:向数据表写入日志信息
那日志信息从哪里来呢?
在你想记录日志的地方,调用日志类的方法来触发写入动作。
比如(伪代码):
if (用户登录成功){
$日志类 = new 日志类();
$日志类->插入数据( "登录日志", "登录成功", "username=a;password=b", "IP" ... )
}
如果你想做日志的查询功能,显然你要给日志类加更多方法..
关于php的日志代码的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php的日志代码 php log日志的详细内容...