仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 747|回复: 18
打印 上一主题 下一主题

[学习教程] PHP教程之PHP教程.使用实例8

[复制链接]
小妖女 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:16:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
我的文章不会对您的学习起到实质性的作用,您能否成功,还得靠自己的,坚持,坚持,再坚持,就是步入成功的不二法门。教程|使用实例   PHP下定制本人的记数器
计数器是让 Web 访客晓得该网页或网站的人气指数最直接的办法,同时,访主人数也是给告白商做告白的最好根据。固然良多网站都供应收费的计数器,可究竟不是本人亲手制造的,不克不及表现出本人的特征。上面就PHP情况下记数器的制造进程停止具体的会商。

访客计数器的流程以下:

第一名利用者阅读某页。

办事器程式从材料库或档案中读取该页被阅读次数。

将次数加一贮存,并将它送回第一名利用者。

下一名利用者阅读某页。

办事器程式从材料库或档案中读取该页被阅读次数。

将次数再加一贮存,并将它送回下一名利用者。

PHP中没有直接的计数器函数,但使用它壮大的功效,咱们可以很轻易地本人编写一个计数器。计数器的完成分为两个阶段:一是完成计数;二是完成数字的显示。在完成计数时又有两种体例:一是基于文件的计数体例;二是基于数据库的计数体例。一样在完成数字的显示上也有两种体例:一是通俗的文本显示;二是图形体例显示。上面就分离将这四种情形作逐一引见.

1、计数的完成

1.基于文件的计数

道理:把以往的会见人数纪录在一个文本文件中,当网页被会见的时分,翻开该文件并从中读出以往的会见人数,加 1,失掉最新的会见人数,再把最新的会见数字回写到记载会见人数的文件中。
完成;

<?php

$counterFile = "counter.txt";
if (!file_exists($counterFile)) {
//判别文件是不是存在
$fp = fopen($counterFile, "w");
fputs($fp, "0");
fclose($fp);
}
//读文件
$n=10;
$fp = fopen($counterFile, "r");
$str1 = fgets($fp,$n);
$str1++;
fclose($fp);
//回写文件
$fp = fopen($counterFile, "w");
fputs($fp, $str1);
fclose($fp);

?>


法式申明:在阅读到本页时,PHP 程式先找寻 counter.txt 文件是不是存在,若不存在,则创立一个 counter.txt 文件,并将 0 写入文件。然后读取 counter.txt 文件的内容,并将读出的数字加一,然后回写到文件中。

2、基于数据库的计数

道理:把会见人数纪录在一个数据库中,当网页被会见的时分,从数据库中读出以往的会见人数,加 1,失掉最新的会见人数,再把最新的会见数字回写到数据库中。

完成:假定数据库为Mysql数据库,名为XinXiKu,先建一数据表count,表字段中唯一counter一个字段,默许值为0,来纪录会见人数。

<?php

//毗连数据
$db=mysql_connect("localhost","root","");
mysql_select_db("XinXiKu",$db);
//更新会见人数
$result=mysql_query("update count set counter=counter+1",$db);

?>


法式申明:会见者在阅读到本页时,起首毗连到数据库,并把记数字段用原值加1来停止更新操作,完成会见数的递增。

2、记数的显示

1、通俗的文本体例显示

这类显示办法很复杂,在需求显示记数的中央直接输入便可。以下面的例子分离申明:

基于文件的计数,直接输入变量str1的内容便可。
<?php echo $str1 ; ?>

基于数据库的计数,起首从数据库中读出,然后再输入。

<?php

//查询数据库
$sql="select * from count";
$result=mysql_query($sql,$db);
//获得纪录集
$record=mysql_fetch_array($result);
//获得会见人数
$str1=$record["counter"];
echo $str1;

?>


一样,你也能够用html语句像 <font color size>等对输入的数字停止润色。文本显示的长处是削减下载工夫,阅读速度快。弱点是显示体例不敷活跃。

2、图形体例显示

道理:把读出的会见数据格局化成尺度的格局,然后使用php供应的图象处置函数,把数字输入成图片格局。如许,数字的显示格局可以随便掌握,真正能表现出本人的特征来。

完成:

<?
Header("Content-type: image/gif");
//界说输入为图象类型
$n=10;
//变量$n是显示位数

//使用下面的办法,获得会见人数并赋值给变量$str1 (法式略)
$str1=获得会见人数的值
$str2 = "";
//位数假如不敷$n位,在后面补0
$len1 = strlen($str1);
for ($i=1;$i<=$n;$i++) {
$str2 = "0".$str2;
};
//失掉$n位0
$len2 = strlen($str2);
//盘算会见人数的位数
$dif = $len2 - $len1;
$rest = substr($str2, 0, $dif);
$string = $rest.$str1;
//位数假如不敷$n位,在后面补0
for ($i=0;$i<=$n-1;$i++) {
$str[$i]=substr($string,$i,1);
};
//以数组存储每位数字
$font = 4;
//界说字号
$im = imagecreate($n*11-1,16);
//新建图像
$black = ImageColorAllocate($im, 0,0,0);
$white = ImageColorAllocate($im, 255,255,255);
//界说色彩
imagefill($im, 0,0,$black);
//把计数器的底色设置成黑色
ImageString($im,$font,1,0,$str[0],$white);
for ($i=1;$i<=$n-1;$i++) {
imageline($im, $i*11-1,0,$i*11-1,16, $white);
ImageString($im,$font,$i*11+1,0,$str[$i],$white);
};
//将每位写入图像,并以竖线分隔
ImageGif($im);
//图像输入
ImageDestroy($im);
//释放图像
?>


输入图形如图如示:


函数申明:

imagecreate(int x_size, int y_size):创立一张全空的图形。参数 x_size、y_size 为图形的尺寸,单元为像素 (pixel)。

imagecolorallocate(int im, int red, int green, int blue):用来婚配图形的色彩,供其它画图函数利用。参数 im 暗示图形的 handle。参数 red、green、blue 是色采三原色,其值从 0 至 255。

imagefill(int im, int x, int y, int col):将图片坐标 (x,y) 地点的区域着色。参数 col 暗示欲涂上的色彩。

imagestring(int im, int font, int x, int y, string s, int col):在图片上绘出程度的横式字符串。参数 font 为字形,设为 1 到 5 暗示利用默许字形。参数 x、y 为字符串出发点坐标。字符串的内容放在参数 s 上。参数 col 暗示字符串的色彩。

imageline(int im, int x1, int y1, int x2, int y2, int col):在图形上画出一条实线。从 x1、y1 毗连到 x2、y2,原点 (0,0) 为图形的左上角。参数 col 为实线的色彩。

imagegif(int im, string [filename]):创立一张 GIF 格局图形。参数 im 为利用 ImageCreate() 所创立的图片代码。

imagedestroy(int im):将图片 handle 解构,释于内存空间。

3、停止语

1、上述代码假如直接放在文件头,那末只需有人会见该页,不管是刷新仍是从网站的其它页跳转到该页,就会使计数值加1,从而使主页计数得到了真实性。有两个很复杂的举措可以处理。


a、在前往到该页的链接上传递一个参数flag,好比:index.php?flag=1,在计数之前起首反省flag变量是不是已赋值,若未赋值,计数器加1。不然不加。

if(empty($flag)){
$counter+=1;
}


b、用Session纪录一标记flag,在记数前先判别flag是不是已赋值,假如没赋值,则记数加1,并给flag赋值,不然,记数器不变。

if (!isset($flag))
{
//处置记数器加1语句
...
//赋值flag
session_start();
session_register("flag");
$flag=1;
}


2、为了便利,可以将计数器作为一个函数MyCounter(),如许只许需在主页开首到场require("filename"); 使MyCounter()成为此主页的一局部,需求的时分,将<? MyCounter();?>加在需求计数器的中央显示就能够了。

3、使用图形显示计数器时,在需求的中央直接拔出:<img src="counter.php" border=0>便可。但要注重的是PHP中必需装置GD库才干使用php中的图象处置函数。

  怎么培养啊 别光说不练啊,好 ,比如新人入门自己步是配置环境,虽然现在都有很多的集成环境,但是真实的体验下配置环境还是会有很多帮助,不论是你以后工作还是在真实的linux下开发。
山那边是海 该用户已被删除
沙发
发表于 2015-2-4 10:33:46 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
小妖女 该用户已被删除
板凳
 楼主| 发表于 2015-2-8 07:57:06 | 只看该作者
我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。
爱飞 该用户已被删除
地板
发表于 2015-2-11 02:59:05 | 只看该作者
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
灵魂腐蚀 该用户已被删除
5#
发表于 2015-2-15 21:08:36 | 只看该作者
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
第二个灵魂 该用户已被删除
6#
发表于 2015-2-27 07:44:40 | 只看该作者
基础有没有对学习php没有太大区别,关键是兴趣。
若相依 该用户已被删除
7#
发表于 2015-3-8 23:40:29 | 只看该作者
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
不帅 该用户已被删除
8#
发表于 2015-3-10 16:08:49 | 只看该作者
遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。
兰色精灵 该用户已被删除
9#
发表于 2015-3-11 20:58:45 | 只看该作者
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
老尸 该用户已被删除
10#
发表于 2015-3-17 00:45:01 | 只看该作者
在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、
乐观 该用户已被删除
11#
发表于 2015-3-22 22:10:41 | 只看该作者
最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。
愤怒的大鸟 该用户已被删除
12#
发表于 2015-3-23 18:04:07 | 只看该作者
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
金色的骷髅 该用户已被删除
13#
发表于 2015-3-26 15:44:03 | 只看该作者
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
精灵巫婆 该用户已被删除
14#
发表于 2015-3-27 08:55:04 | 只看该作者
先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。
蒙在股里 该用户已被删除
15#
发表于 2015-4-10 08:58:47 | 只看该作者
开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。
再现理想 该用户已被删除
16#
发表于 2015-4-14 05:08:26 | 只看该作者
Ps:以上纯属原创,如有雷同,纯属巧合
深爱那片海 该用户已被删除
17#
发表于 2015-4-26 21:10:42 | 只看该作者
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
谁可相欹 该用户已被删除
18#
发表于 2015-5-4 03:57:59 | 只看该作者
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
海妖 该用户已被删除
19#
发表于 2015-5-5 14:12:20 | 只看该作者
没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-14 13:08

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表