php 流量统计代码[无需数据库](1/4)

 更新时间:2016年11月25日 15:55  点击:2177

我们下面要提供的这几款php教程 流量统计代码是基础文本文件的无需数据库教程,下面我们开始从简单的到复杂的网页访问次数计数器代码实例吧。

 代码如下 复制代码

<HTML>
<HEAD>
<TITLE>基于文件系统的页面计数器范例</TITLE>
</HEAD>

<BODY>

<?PHP

$countfile = "num.txt";
//定义计数器写入的文件是当前目录下count.txt,然后我们应当测试该文件能否打开
if (($fp = fopen($countfile, "r+")) == false) { //用读写模式打开文件,若不能打开就退出
 printf ("打开文件 %s 失败!",$countfile);
 exit;
}
else
{
 //如果文件能够正常打开,就读入文件中的数据,假设是1
 $count = fread ($fp,10);
 //读取10位数据
 $count = $count + 1;

 fclose ($fp);
 //关闭当前文件
 $fp = fopen($countfile, "w+");
 //以覆盖模式打开文件
 fwrite ($fp,$count);
 //写入加1后的新数据
 fclose ($fp);
 //并关闭文件
 echo '您好,您是第'. $count.'位访客';
}
?>
</BODY>
</HTML>

计数器二,这个基础数据库

<HTML>
<HEAD>
<TITLE>基于数据库的页面计数器范例</TITLE>
</HEAD>

<BODY>

 

 代码如下 复制代码

function getRelativePath($a, $b) {  
    $returnPath = array(dirname($b));  
    $arrA = explode('/', $a);  
    $arrB = explode('/', $returnPath[0]);

    for ($n = 1, $len = count($arrB); $n < $len; $n++) {  
        if ($arrA[$n] != $arrB[$n]) {  
            break;  
        }   
    }  
    if ($len - $n > 0) {  
        $returnPath = array_merge($returnPath, array_fill(1, $len - $n, '..'));  
    }  
      
    $returnPath = array_merge($returnPath, array_slice($arrA, $n));  
    return implode('/', $returnPath);  
}  
var_dump(getRelativePath($a, $b)); 

//方法二
$a = "/a/b/c/d/index.php";
//echo basename($a,'.php');// 返回路径中文件名部分
//echo dirname($a);
$b = "/a/b/12/34/index2.php";

function getRelativePath($path1,$path2){
    $p1 = dirname($path1);
    $p2 = dirname($path2);

    $arr1 = explode('/',$p1);
    $arr2 = explode('/',$p2);

    $diff_arr= array_diff($arr2,$arr1);    //计算差集 注意这里 是谁相对谁的
    $inter_arr = array_intersect($arr1,$arr2);//计算交集
   
    $leng = count($inter_arr);    //长度是以交集的为准 即求..部分
    for($i=1;$i<$leng;$i++){
        $inter_arr[$i] = '..';   
    }
   
    $merge_arr = array_merge($inter_arr,$diff_arr);
    $fina_arr = implode('/',$merge_arr);
    return $fina_arr;
}
var_dump(getRelativePath($a,$b));
//返回 string '/../../12/34' (length=12)
//如果改成$diff_arr= array_diff($arr1,$arr2); 就返回string '/../../c/d (length=12)

 

 

这里是我们用php教程简单自主开网页访问次数计数器代码偌,是一款基于文件的图形计数器范例代码

会用到的文件用

num.txt //累计访问次数

vist.php//测试文件

count.php//统计访问次的核心程序,因为它会把文字转换成gif图片,并且输出到浏览器。

 代码如下 复制代码

<HTML>
<HEAD>
<TITLE>图形计数器范例</TITLE>
</HEAD>

<BODY>
您好,您是第<img src="ImgOutFileCount.php">位访客
</BODY>
</HTML>

count.php文件

 代码如下 复制代码

<?
Header("Content-type: image/gif");
//http头,告诉浏览器,这是一个GIF图片

$countfile = "num.txt";
//定义计数器写入的文件是当前目录下count.txt,然后我们应当测试该文件能否打开
if (($fp = fopen($countfile, "r+")) == false) { //用读写模式打开文件,若不能打开就退出
 printf ("打开文件 %s 失败!",$countfile);
 exit;
}
else
{
 //如果文件能够正常打开,就读入文件中的数据,假设是1
 $count = fread ($fp,10);
 //读取10位数据
 $count = $count + 1;

 fclose ($fp);
 //关闭当前文件
 $fp = fopen($countfile, "w+");
 //以覆盖模式打开文件
 fwrite ($fp,$count);
 //写入加1后的新数据
 fclose ($fp);
 //并关闭文件

}

//定义输出为图像类型
$n=10;
//变量$n是显示位数

 

/*
sql数据库教程结构
-- phpMyAdmin SQL Dump
-- version 2.11.6
--
-- 主机: localhost
-- 生成日期: 2009 年 11 月 08 日 08:22
-- 服务器版本: 5.0.51
-- PHP 版本: 5.2.6

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 ;

--
-- 数据库: `myde520`
--

-- --------------------------------------------------------

--
-- 表的结构 `news`
--

CREATE TABLE `news` (
  `id` int(10) NOT NULL auto_increment,
  `title` varchar(250) character set gbk default NULL,
  `content` text character set gbk,
  `date` date default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=gb2312 AUTO_INCREMENT=9 ;

--
-- 导出表中的数据 `news`
--

INSERT INTO `news` (`id`, `title`, `content`, `date`) VALUES
(1, '看博文网址公布', '看博文网址http://www.111cn.net', '2009-11-08'),
(2, '寻宝客网址公布', '寻宝客的网址是http://www.111cn.net,希望大家常来看看', '2009-11-08'),
(3, '小贤家园网址公布', '小贤家园http://www.111cn.net', '2009-11-08'),
(4, '桂林特产网址公布', '桂林特产网址htttp://www.111cn.net', '2009-11-08'),
(5, '阳朔仙境宾馆网址公布', '阳朔仙境宾馆网址http://www.111cn.net', '2009-11-08'),
(6, '养生堂网址公布', '养生堂网址http://www.111cn.net', '2009-11-08'),
(7, '寻宝客上线25天', '寻宝客上线25天,百度和谷歌都收录过1000篇! http://www.111cn.net', '2009-11-08');

*/
//html代码

?>

function outPege($ps教程,$page)
{
// $ps 累计信息数 $page 当前page数 $max 列表的最大数 $min 列表的最小值
$max      = ($page >= 5)? $page+5:10;
if($max > $ps)$max =$ps;
$min      =($page-5);
if($min<1) $min =1;
if($page>1)$pagelist = "<a href="?page=1">首页</a>";
for($i=$min;$i<=$max;$i++){
  $pagelist.= ($i!=$page)? "<a href="?page={$i}">{$i}</a>":"<a href="#">{$page}</a>";
}
$pagelist.= ($page>=$ps)?'':"<a href="?page={$ps}">尾页</a>";
return $pagelist;
}

//方法二

/**
* 显示分页函数
* records总记录数,currentpage当前页数,rows每页记录数,listpage页号列表长度。
*/
function showpage ($records,$currentpage,$rows=20,$listpages=7) {
if($records<1)return '';
if($rows<1)$rows=20;
if($listpages<3)$listpages=7;
$action=$_SERVER['QUERY_STRING']; //得到地址栏中?后的内容
if($action){ //将page=...的内容去掉
$action=preg_replace("/&page[^&]*/","",$action);
$action=preg_replace("/page[^&]*&*/","",$action);
}
if($action)$action.='&';
$maxpage=ceil($records/$rows); //进一法取整得到最大页数。
$middlepage=floor($listpages/2); //舍去法取整得到要显示的页数的一半。
if($currentpage<1||$currentpage>$maxpage)$currentpage=1;
$startpage=$currentpage-$middlepage;
if($maxpage-$currentpage<=$middlepage)$startpage=$maxpage-$listpages;
if($startpage<2)$startpage=2; //开始页计算完成
$endpage=$startpage+$listpages;
if($endpage>$maxpage)$endpage=$maxpage; //结束页计算完成
if($currentpage!=1){
$pagestr="<a href='?{$action}page=1'><span>1</span></a> ";
}else{
$pagestr="<span>1</span> ";
}

[!--infotagslink--]

相关文章

  • PHP 数据库缓存Memcache操作类

    操作类就是把一些常用的一系列的数据库或相关操作写在一个类中,这样调用时我们只要调用类文件,如果要执行相关操作就直接调用类文件中的方法函数就可以实现了,下面整理了...2016-11-25
  • C#连接SQL数据库和查询数据功能的操作技巧

    本文给大家分享C#连接SQL数据库和查询数据功能的操作技巧,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友参考下吧...2021-05-17
  • C#从数据库读取图片并保存的两种方法

    这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
  • Intellij IDEA连接Navicat数据库的方法

    这篇文章主要介绍了Intellij IDEA连接Navicat数据库的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借价值,需要的朋友可以参考下...2021-03-25
  • 在数据库里将毫秒转换成date格式的方法

    在开发过程中,我们经常会将日期时间的毫秒数存放到数据库,但是它对应的时间看起来就十分不方便,我们可以使用一些函数将毫秒转换成date格式。 一、 在MySQL中,有内置的函数from_unixtime()来做相应的转换,使用如下: 复制...2014-05-31
  • 不打开网页直接查看网站的源代码

      有一种方法,可以不打开网站而直接查看到这个网站的源代码..   这样可以有效地防止误入恶意网站...   在浏览器地址栏输入:   view-source:http://...2016-09-20
  • php 调用goolge地图代码

    <?php require('path.inc.php'); header('content-Type: text/html; charset=utf-8'); $borough_id = intval($_GET['id']); if(!$borough_id){ echo ' ...2016-11-25
  • C#操作本地文件及保存文件到数据库的基本方法总结

    C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
  • JS基于Mootools实现的个性菜单效果代码

    本文实例讲述了JS基于Mootools实现的个性菜单效果代码。分享给大家供大家参考,具体如下:这里演示基于Mootools做的带动画的垂直型菜单,是一个初学者写的,用来学习Mootools的使用有帮助,下载时请注意要将外部引用的mootools...2015-10-23
  • 如何解决局域网内mysql数据库连接慢

    通过内网连另外一台机器的mysql服务, 确发现速度N慢! 等了大约几十秒才等到提示输入密码。 但是ping mysql所在服务器却很快! 想到很久之前有过类似的经验, telnet等一些服务在连接请求的时候,会做一些反向域名解析(如果...2015-10-21
  • JS+CSS实现分类动态选择及移动功能效果代码

    本文实例讲述了JS+CSS实现分类动态选择及移动功能效果代码。分享给大家供大家参考,具体如下:这是一个类似选项卡功能的选择插件,与普通的TAb区别是加入了动画效果,多用于商品类网站,用作商品分类功能,不过其它网站也可以用,...2015-10-21
  • JS实现自定义简单网页软键盘效果代码

    本文实例讲述了JS实现自定义简单网页软键盘效果。分享给大家供大家参考,具体如下:这是一款自定义的简单点的网页软键盘,没有使用任何控件,仅是为了练习JavaScript编写水平,安全性方面没有过多考虑,有顾虑的可以不用,目的是学...2015-11-08
  • MySQL快速复制数据库数据表的方法

    某些时候,例如为了搭建一个测试环境,或者克隆一个网站,需要复制一个已存在的mysql数据库。使用以下方法,可以非常简单地实现。假设已经存在的数据库名字叫db1,想要复制一份,命名为newdb。步骤如下:1. 首先创建新的数据库newd...2015-10-21
  • php 取除连续空格与换行代码

    php 取除连续空格与换行代码,这些我们都用到str_replace与正则函数 第一种: $content=str_replace("n","",$content); echo $content; 第二种: $content=preg_replac...2016-11-25
  • mysqldump命令导入导出数据库方法与实例汇总

    mysqldump命令的用法1、导出所有库系统命令行mysqldump -uusername -ppassword --all-databases > all.sql 2、导入所有库mysql命令行mysql>source all.sql; 3、导出某些库系统命令行mysqldump -uusername -ppassword...2015-10-21
  • php简单用户登陆程序代码

    php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p>&nbsp;</p> <p>&nbsp;</p> <form name="form1...2016-11-25
  • Mysql数据库错误代码中文详细说明

    1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库失败1009:不能删除数据库文件导致删除数据库失败1010:不能删除数据目录导致删除数据库失败1011:删除数据库...2013-09-23
  • PHP实现清除wordpress里恶意代码

    公司一些wordpress网站由于下载的插件存在恶意代码,导致整个服务器所有网站PHP文件都存在恶意代码,就写了个简单的脚本清除。恶意代码示例...2015-10-23
  • JS实现双击屏幕滚动效果代码

    本文实例讲述了JS实现双击屏幕滚动效果代码。分享给大家供大家参考,具体如下:这里演示双击滚屏效果代码的实现方法,不知道有觉得有用处的没,现在网上还有很多还在用这个特效的呢,代码分享给大家吧。运行效果截图如下:在线演...2015-10-30
  • js识别uc浏览器的代码

    其实挺简单的就是if(navigator.userAgent.indexOf('UCBrowser') > -1) {alert("uc浏览器");}else{//不是uc浏览器执行的操作}如果想测试某个浏览器的特征可以通过如下方法获取JS获取浏览器信息 浏览器代码名称:navigator...2015-11-08