php无需数据库访问者计数器(txt文本保存数据)

 更新时间:2016年11月25日 15:54  点击:1629
本款程序是利用php+txt实现的网页访问次数统计代码,要记录用户访问了页站页面的次数比较简单实用。


include ("counter.php")
?>

 代码如下 复制代码

<html>
<head>

  <title>访问者计数器</title>

</head>
<body>
<center>
<font color = blue>你是第</font><font color = red> <?= $counter ?> </font><font color = blue>个来访者,</font>
<font color = blue>你的ip:</font><font color = red><?= $ip ?></font>
</center>
</body>
</html>

<?php

 

 代码如下 复制代码

$fp = fopen("counter.txt","r+");
 $counter = fgets($fp,80);
 $counter = doubleval($counter) + 1;
 fseek ($fp,0);
 fputs($fp,$counter);
 fclose($fp);

/*
如果要把这个统计器做成图片的,可以加入下面代码,并且在images目录下做0,9命名的图片就ok了。
*/
 $number = strlen("$counter");
 for($i = 0;$i<$number;$i++){
  $gra_counter = substr($counter,$i,1);
  $image = $image."<img src = 'images/".$gra_counter.".jpg'>";

 }


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";
}

php父类与子类读取数据代码是一填二级分类的程序代码,该程序可以根据父的数据查找出其子类的数据哦。
 代码如下 复制代码

function getsubcomments($parent = 0, $level = 0) {
$db = &jfactory::getdbo();

$sql = "..."; // 查询记录的sql
$db->setquery($sql);
$rows = $db->loadobjectlist();

$list = array();

// 先从数据得到记录集,再对记录添加level, 父层level = 0,它的下级level = 1,如此类推
foreach ($rows as $row) {
$row->level = $level;
$list[] = $row;

$tmparr = getsubcomments($row->id, $level + 1); // 递归调用
if (count($tmparr)) {
foreach ($tmparr as $tmprow) {
$list[] = $tmprow;
}
}
}

return $list;
}

$list = array();
foreach ($tmplist as $row) {
$row->level = 0;
$list[] = $row;
$tmplist2 = getsubcomments($row->id, 1);
foreach ($tmplist2 as $row2) {
$list[] = $row2;
}
}

// 按level分层次输出内容
if ($row->level) {
$pre = '';
for ($n = 0; $n < $row->level; $n++)
$pre .= '----';

echo $pre . '|- ';
}
echo strip_tags($row->content);

 

html代码

 代码如下 复制代码

<table width="100%" border="0" valign="top" align="center" cellpadding="0" cellspacing="0" >
  <tr>
    <td valign="top">
 
<table width="600" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#cccccc" class="all" id="tr"> 

          <tr >
            <td align="center" bgcolor="#d4e6ec" >id</td>
            <td height="28" align="left" bgcolor="#d4e6ec" >标题</td>
            <td align="left" bgcolor="#d4e6ec" >日期</td>
          </tr> 
<?php include_once("page.php"); ?> 
<?php
$conn=mysql_connect("localhost","root","") or die("不能连接数据库教程:".mysql_error());
$db=mysql_select_db("dbtest") or die("选择数据库错:".mysql_error());
mysql_query("set names gb2312");

$sql="select * from test order by id ";
genpage($sql,3); //这里引用了第一个函数 后面数字定义每页记录数
$result=mysql_query($sql) or die ("数据库操作出错:".mysql_error());
while ($row=mysql_fetch_array($result))
{
?>

          <tr >
            <td width="55" align="center" bgcolor="#ffffff" ><?php echo $row['id'] ?> </td>
            <td width="383" height="28" align="left" bgcolor="#ffffff" ><?php echo $row['title'] ?></td>
            <td width="162" align="left" bgcolor="#ffffff" ><?php echo $row['editdate'] ?></td>
          </tr>

<?php
}
?>
          <tr>
            <td height="30" colspan="3" align="center" bgcolor="#d4e6ec"><?php showpage();//这里引用了第二个函数 ?></td>
          </tr>
      </table>

 

图片上传一般都是直接上传了,现在我们写的一款php 图片上传代码,可以在图片预览效果,这样可以方便查看你上传图片的效果哦。

 代码如下 复制代码
<script language="网页特效" type="text/网页特效" >
//上传大图片显示
 function showuploadpic(uploadpic)
  {
   if(uploadpic.value!="")
   {
    document.getelementbyid('preview').src=uploadpic.value;
    }
   
   }
 
 //上传小图片显示
 function showuploadpics(uploadpic)
  {
   if(uploadpic.value!="")
   {
    document.getelementbyid('previews').src=uploadpic.value;
    }
   
   }
   
   
 //上传flash图片
 function showuploadflash(uploadpic)
 {
  if(uploadpic.value!="")
  {
   document.getelementbyid('preview').src=uploadpic.value;
   }
  
  
  }
</script>
<form action="up.php?act=add" method="post" enctype="multipart/form-data">
<input type="file" name="flashpic"  id="flashpic" onchange="showuploadpic(this)"/><img src="" width="100" height="100" id="preview"/><br />
<input type="file" name="flashpics"  id="flashpics" onchange="showuploadpics(this)"/>
<img src=""  width="100" height="100" id="previews"/>
<input name="" type="submit" value="添加" />
</form>
<?php
 //require_once("class/uploadfile.class.php");
 if($_request['act']=='add'){
 $maximg=$_files['flashpic'];
 $minimg=$_files['flashpics'];
 $upload=new uploadfile;
 $fmaxpath="no_picture.gif";
 $fminpath="no_picture.gif";
 if(!empty($maximg['tmp_name']))
 {
 $fmaxpath=$upload->upload($maximg,'upfiles/');
 
 }
 if(!empty($minimg['tmp_name']))
 {
 $fminpath=$upload->upload($minimg,'upfiles/');
 }
 }
?> 这是一款用户自己写的php生成html页面的代码,简单实用比较适合初学者,如果你正在学习php生成静态文件,这一个实例从数据库到php到模板文件都一步步的很清楚哦。
 代码如下 复制代码

$con=mysql教程_connect("localhost","root","")or die("链接错误!!!");
mysql_select_db("message",$con)or die("数据库链接错误!!!");
mysql_query("set names 'gbk'");
$sql=mysql_query("select * from message");

if($_post[button]){
while($row=mysql_fetch_array($sql)){
$path=$row[0].'.html';
$user=$row[1];
$title=$row[2];
$content=$row[3];
$date=$row[4];

$fp=fopen("moban/html.html","r");
$str=fread($fp,filesize("./moban/html.html"));
$str=str_replace("{user}",$user,$str);
$str=str_replace("{title}",$title,$str);
$str=str_replace("{content}",$content,$str);
$str=str_replace("{date}",$date,$str);
fclose($fp);

$handle=fopen("news/".$path,"w");
fwrite($handle,$str);
fclose($handle);
echo "<script>alert('生成成功!!!');window.location.href='html.php';</script>";
}
}
?>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>

<body>
<form id="form1" name="form1" method="post" action="">
  <label>
  <input type="submit" name="button" id="button" value="生成静态页面" />
  </label>
</form>
</body>
</html>

模板文件代码

 代码如下 复制代码

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.111cn.net/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>

<body>
<table width="500">
  <tr>
    <td width="80"><div align="right">名称:</div></td>
    <td width="408"><div align="left">{user}</div></td>
  </tr>
  <tr>
    <td><div align="right">标题:</div></td>
    <td><div align="left">{title}</div></td>
  </tr>
  <tr>
    <td><div align="right">内容:</div></td>
    <td><div align="left">{content}</div></td>
  </tr>
  <tr>
    <td><div align="right">日期:</div></td>
    <td><div align="left">{date}</div></td>
  </tr>
  <tr>
    <td><div align="right"></div></td>
    <td><div align="left"></div></td>
  </tr>
</table>
</body>

删除html代码

 代码如下 复制代码

<?php
$con=mysql_connect("localhost","root","")or die("链接错误!!!");
mysql_select_db("message",$con)or die("数据库链接错误!!!");
mysql_query("set names 'gbk'");
$sql=mysql_query("select * from message");

if($_post[button]){
while($row=mysql_fetch_array($sql)){
$path=$row[0].'.html';

 
  if(@unlink("news/".$path)){
  echo "<script>alert('删除成功!!!');window.location.href='unlink_html.php';</script>";
  }else{
  echo "<script>alert('无内容可以删除!!!');window.location.href='unlink_html.php';</script>";
  }
  }
}
?>
<form id="form1" name="form1" method="post" action="">
  <label>
  <input type="submit" name="button" id="button" value="删除静态页面" />
  </label>
</form>

//数据库结构,用phpmyadmin导入就行了

 表的结构 `message`
--

create table `message` (
  `id` int(4) not null auto_increment,
  `user` varchar(20) not null,
  `title` varchar(100) not null,
  `content` text not null,
  `date` date not null,
  primary key  (`id`)
) engine=myisam  default charset=gbk auto_increment=3 ;

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

insert into `message` (`id`, `user`, `title`, `content`, `date`) values
(1, 'dfkk', '数据库信息生成静态页面', 'www.111cn.net', '2010-02-12'),
(2, 'dfkk', '数据库信息生成静态页面', '原理很简单', '2010-02-12');


自己写的,可通过按钮生成静态页面和删除已生成的静态页面。

moban存放模板文件夹(勿删)。

news生成静态页面文件夹(勿删)。


注意事项:phpmyadmin工具导入数据库文件message.sql。

[!--infotagslink--]

相关文章

  • PHP 数据库缓存Memcache操作类

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

    本文给大家分享C#连接SQL数据库和查询数据功能的操作技巧,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友参考下吧...2021-05-17
  • php简单数据操作的实例

    最基础的对数据的增加删除修改操作实例,菜鸟们收了吧...2013-09-26
  • C#从数据库读取图片并保存的两种方法

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

    这篇文章主要介绍了解决Mybatis 大数据量的批量insert问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-01-09
  • Antd-vue Table组件添加Click事件,实现点击某行数据教程

    这篇文章主要介绍了Antd-vue Table组件添加Click事件,实现点击某行数据教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-17
  • 详解如何清理redis集群的所有数据

    这篇文章主要介绍了详解如何清理redis集群的所有数据,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-18
  • Intellij IDEA连接Navicat数据库的方法

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

    在开发过程中,我们经常会将日期时间的毫秒数存放到数据库,但是它对应的时间看起来就十分不方便,我们可以使用一些函数将毫秒转换成date格式。 一、 在MySQL中,有内置的函数from_unixtime()来做相应的转换,使用如下: 复制...2014-05-31
  • vue 获取到数据但却渲染不到页面上的解决方法

    这篇文章主要介绍了vue 获取到数据但却渲染不到页面上的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-19
  • C#操作本地文件及保存文件到数据库的基本方法总结

    C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
  • 如何解决局域网内mysql数据库连接慢

    通过内网连另外一台机器的mysql服务, 确发现速度N慢! 等了大约几十秒才等到提示输入密码。 但是ping mysql所在服务器却很快! 想到很久之前有过类似的经验, telnet等一些服务在连接请求的时候,会做一些反向域名解析(如果...2015-10-21
  • php把读取xml 文档并转换成json数据代码

    在php中解析xml文档用专门的函数domdocument来处理,把json在php中也有相关的处理函数,我们要把数据xml 数据存到一个数据再用json_encode直接换成json数据就OK了。...2016-11-25
  • MySQL快速复制数据库数据表的方法

    某些时候,例如为了搭建一个测试环境,或者克隆一个网站,需要复制一个已存在的mysql数据库。使用以下方法,可以非常简单地实现。假设已经存在的数据库名字叫db1,想要复制一份,命名为newdb。步骤如下:1. 首先创建新的数据库newd...2015-10-21
  • mybatis-plus 处理大数据插入太慢的解决

    这篇文章主要介绍了mybatis-plus 处理大数据插入太慢的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-12-18
  • mysqldump命令导入导出数据库方法与实例汇总

    mysqldump命令的用法1、导出所有库系统命令行mysqldump -uusername -ppassword --all-databases > all.sql 2、导入所有库mysql命令行mysql>source all.sql; 3、导出某些库系统命令行mysqldump -uusername -ppassword...2015-10-21
  • Mysql数据库错误代码中文详细说明

    1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库失败1009:不能删除数据库文件导致删除数据库失败1010:不能删除数据目录导致删除数据库失败1011:删除数据库...2013-09-23
  • postgresql数据添加两个字段联合唯一的操作

    这篇文章主要介绍了postgresql数据添加两个字段联合唯一的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-04
  • Vue生命周期activated之返回上一页不重新请求数据操作

    这篇文章主要介绍了Vue生命周期activated之返回上一页不重新请求数据操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-26
  • c#异步读取数据库与异步更新ui的代码实现

    这篇文章主要介绍了c#从数据库里取得数据并异步更新ui的方法,大家参考使用吧...2020-06-25