0.功能设计
获取访客的IP(后期可用来获取地理位置)
获取访客的地理位置(通过IP获取)
获取访客的访问次数
获取访客的访问时间
获取访客访问的网页
获取访客访问的网页的标题
1.设计数据库表
使用phpMyadmin或其他mysql工具来进行表的创建和设计:
表名:my_count
字段:
id(int 10,主键,自增),
ip(varchar 20用来存储访客的IP地址),
country(varchar 20用来存储访客的国籍),
region(varchar 20用来存储访客的省份),
adress(varchar 20用来存储访客的所在城市),
time(int 10用来存储访客的访问次数),
date(datetime 6用来存储访客的访问时间),
url(varchar 30用来存储访客访问的网页),
page_url(varchar 100用来存储访客访问的网页的标题)
2.编写php文件
在/网站目录/wp-content/themes/主题名 下创建PHP文件visitorstatistics.php:
//连接数据库
$servername = "localhost";
$username = "root";
$passwd = "root";
$dbname = "wordpress";
$conn=mysqli_connect($servername,$username,$passwd,$dbname);
//获取IP地址
$ip=$_SERVER["REMOTE_ADDR"];
//获取地址位置。此段代码主要使用淘宝的接口来通过ip获取地理位置,接口反应比较慢,因此准备后期单独使用脚本来刷数据库的数据。
// $url='http://ip.taobao.com/service/getIpInfo.php?ip='.$ip;
// $result = file_get_contents($url);
// $result = json_decode($result,true);
// if($result['code']!==0 || !is_array($result['data'])) return false;
// $res1 = $result['data'];
// $adress1 = $res1['city'];
// iconv('gbk','utf-8',$adress1);
// $adress2 = $res1['region'];
// iconv('gbk','utf-8',$adress2);
// $adress3 = $res1['country'];
// iconv('gbk','utf-8',$adress3);
// $country = $adress3;
// $region = $adress2;
// $adress = $adress1;
//获取此ip访问次数
$sql="select count(id) from wp_count where ip='$ip'";
$res=mysqli_query($conn,$sql);
if($row=mysqli_fetch_row($res)){
$ipnum=$row['0']+1;
//获取当前网页的地址
$url = $_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"];
//获取当前网页标题(此方法暂不可用,待解决)
//$title = "document.write(document.title);";
//$page_title = var_dump($page_title);
//将本次访客的ip地址添加到数据库中
//$sql="insert into wp_count(ip, date, adress, country, region, time, url) values('$ip',NOW(),N'$adress', N'$country', N'$region', '$ipnum', '$url')";
$sql="insert into wp_count(ip, date, time, url) values('$ip',NOW(), '$ipnum', '$url')";
$res=mysqli_query($conn,$sql);
//获取访问总数
$sql="select count(id) from wp_count";
$res=mysqli_query($conn,$sql);
if($row=mysqli_fetch_row($res)){
$num=$row['0'];
//输出统计结果
echo" 您是第 "."$num"." 位访客".",这是您的第 "."$ipnum"." 次访问,感谢您的支持和关注!";
//关闭mysql连接
mysqli_close();
?>
3.配置php文件
打开footer.php,在结尾插入:
<?php get_template_part('visitorstatistics'); ?>
完了之后点击下方的更新按钮。打开网页,会看到下方出现文字:“您是第xxx 位访客,这是您的第 xxx 次访问,感谢您的支持和关注! ”
4.附录
get_template_part($slug,$name); //用来调用模板
参数:
$slug (必须) 通用的模板名
(字符串)要引入的模板的文件名,不包括后缀名 .php,也就是如果需要引入当前主题根目录的 loop.php 文件 $slug 填写 “loop” 即可。
$name(可选) 指定的模板名
(字符串)要引入的模板的文件的副文件名,如果要引入当前主题根目录的 loop-img.php 文件 $slug 参数填写 “loop”,$name 参数填写 “img”。
http://ip.taobao.com/service/getIpInfo.php?ip=101.132.162.76
淘宝的接口,用来返回ip地址对应的地理信息,返回实例:
{"code":0,"data":{"ip":"101.132.162.76","country":"中国","area":"","region":"上海","city":"上海","county":"XX","isp":"阿里云","country_id":"CN","area_id":"","region_id":"310000","city_id":"310100","county_id":"xx","isp_id":"1000323"}}
网友评论