9. 简易banner动态更替 
  不知大家有没有发现各大站点上的标头广告banner,我们每次访问这些站点时,都会看到不同的广告图标,或者如果你每次刷新页面时,这些广告banner就会不断地随机更替变换。要实现这种效果虽然用javascript也可以达到(象天极网站的动态变换广告banner就是通过调用javascript来实现的),但是如果我们用PHP的话,我们还可以结合数据库来做数据量很大,如每日一题之类的功能。费话少说,让我们立即来看看如何用PHP来实现banner的动态更替功能。

简易banner动态更替PHP文件(banner.php3): 
<? 
//产生随机数 
srand((double)microtime()*1000000); 
//在0和4之间取一个数字 
$randval = rand(0,5); 
// 显示结果 
echo "<a href=//gophp.heha.net/index.html><img alt=进入php的世界 border=0 src=$randval.gif></a>"; 
?>

  我们可以发现,实现的程序非常简单:主要是先利用srand这一初始化随机数产生器产生随机数,再调用rand函数在定义的有效范围内来获取其中一个随机值,最后显示$randval.gif各图片banner,即0.gif、1.gif、2.gif、3.gif或4.gif。为了便于大家理解,我将rand函数的语法及相关说明罗列如下: 
rand 
语法:int rand([int min], [int max]); 
返回值:整数 
函数种类:数学运算 
内容说明:本函数用来取得随机值。若没有指定随机数的最大及最小范围,本函数会自动地从0到RAND_MAX中取一个随机数。若有指定min及max的参数,则从指定参数中取一数字。例如rand(38,49)则会从38到49之间取得一个随机值。其中UNIX系统包含49,Win32系统不包含49。值得注意的是为了使随机数的随机率最大,每次在取随机数前最好使用srand()来设定新的随机数。在本例中在用srand()来产生新的随机数时加入了时间因素,执行时以百万分之一的随机率来产生随机数

9.1 我们更改head.inc文件以应用该简易banner动态更替功能,同时还得为不同的广告banner链接到它们对应的网址。

  当然,首先我们必须先准备好用于更换交换的banner图标,同时也给我们的页面标头加上自己网站的徽标(01DC.gif)。

新的标头文件(header.inc): 
<? 
// 定义通用页面头部 
?> 
<HTML> 
<HEAD> 
<TITLE> <? echo "$MySiteName - $title"; ?> </TITLE> 
<style type="text/css"> 
<!-- 
.text { font-family: "宋体"; font-size: 12pt; color: #006633; text-decoration: none} 
--> 
</style> 
</HEAD> 
<body topmargin=2> 
<table width="100%" border="0"> 
<tr> 
<td rowspan="3" width="19%"><img src="http://gophp.heha.net/test/images/01dc.gif" width="140" height="60"></td> 
<td rowspan="3" width="29%"> 
<? 
//取得乱数种子 
srand((double)microtime()*1000000); 
//在0和4之间取一个数字 
$randval = rand(0,5); 
// 显示结果 
switch($randval) 

case "0"; 
echo "<a href=//gophp.heha.net/index.html><img border=0 src=$randval.gif></a>"; 
break; 
case "1"; 
echo "<a href=//personal.668.cc/haitang/index.htm><img border=0 src=$randval.gif></a>"; 
break; 
case "2"; 
echo "<a href=//gophp.heha.net/index.html><img border=0 src=$randval.gif></a>"; 
break; 
case "3"; 
echo "<a href=//gophp.heha.net/index.html><img border=0 src=$randval.gif></a>"; 
break; 
case "4"; 
echo "<a href=//personal.668.cc/haitang/index.htm><img border=0 src=$randval.gif></a>"; 
break; 

?> 
</td> 
<td width="52%"> 
<div align="center"><a href="../test/form.php3" class="text">自动发送邮件测试</a></div> 
</td> 
</tr> 
<tr> 
<td width="52%"> 
<div align="center"><a href="../test/php/php1.php3" class="text">简易轮回广告更替</a></div> 
</td> 
</tr> 
<tr> 
<td width="52%"> 
<div align="center"><a href="../password/password.php3" class="text">简易密码验证实例</a></div> 
</td> 
</tr> 
</table> 
<hr color="#ff9900" size="4"> 
</body> 
</html>

转载于:https://www.cnblogs.com/kylskjb/archive/2008/08/12/1265683.html

PHP新手上路(十)相关推荐

  1. 新手上路注意事项及驾车技巧

    新手上路总则 其实,每一个新手都曾经历过上路的窘迫,如果能够顺利度过最初实习期的话,将会受益终生.每一位驾驶员都经历过初次上路的忐忑不安,眼盯前方,双手紧握转向盘,身体僵直前倾,远离前车,缓慢前行,起 ...

  2. 【新手上路】语法入门算法入门题单

    作者:王清楚 链接:[新手上路]语法入门&算法入门题单_ACM竞赛_ACM/CSP/ICPC/CCPC/比赛经验/题解/资讯_牛客竞赛OJ_牛客网 来源:牛客网 介绍:本题单分为语法入门和算法 ...

  3. 新手上路之第一次自驾游

    原文: 新手上路之第一次自驾游 链接:http://blog.sina.com.cn/s/blog_69a04cf401016yl1.html 人生有很多第一次,今年五一我们完成了第一次自驾游. 本人 ...

  4. MicroPython_ESP8266_IoT——第一回 新手上路(开始之前要准备)

    第一回 新手上路(开始之前要准备) 本系列涉及到使用的软件和硬件并不像以前那样繁琐.复杂.如果之前有这方面的了解,初学过Python或者用过80C51或STM32系列的MCU,那么这一回的内容就跟吃馍 ...

  5. 新手上路C语言初识C语言(其二)

    文章目录 新手上路C语言初识C语言(其二) 导入 一.变量的作用域和生命周期 二.常量 字面常量 const修饰的常变量 #define定义的标识符常量 枚举常量 三.字符串 四.转义字符 五.注释 ...

  6. Windows内核新手上路1——挂钩SSDT

    Windows内核新手上路1--挂钩SSDT 这个系列记录学习我学习windows内核的点点滴滴,高手请直接无视. 文章核心内容:挂钩SSDT中函数列NtOpenProcess,NtDuplicate ...

  7. Windows内核新手上路3——挂钩KeUserModeCallBack

    Windows内核新手上路3--挂钩KeUserModeCallBack 1.     简介 在Windows系统中,提供了几种方式从R0调用位于R3的函数,其中一种方式是KeUserModeCall ...

  8. Windows内核新手上路2——挂钩shadow SSDT

    Windows内核新手上路2--挂钩shadow SSDT 文章核心内容:安全软件窗口保护.安全输入.截屏保护的一些思路.挂钩NtUserFindWindowEx.NtUserGetForegroun ...

  9. Linux新手上路命令

    Linux新手上路命令 命令:www.ahlinux.com Ctrl+Alt+F1  进入命令界面 Ctrl+Alt+F7  返回图形界面 root用户和普通用户切换 administrator 2 ...

  10. 千寻和省cors精度对比_测量员新手上路攻略:解析省CORS和千寻CORS账号区别及其如何选择运用...

    原标题:测量员新手上路攻略:解析省CORS和千寻CORS账号区别及其如何选择运用 说到CORS.CORS账号,想必大家都不陌生,CORS-连续运行卫星定位服务系统,现在多代指网络RTK,是在传统RTK ...

最新文章

  1. ldap 高级查询 禁用_化妆水有治疗耳部疾患、痔疮等11大功效?专家表示或含禁用物质...
  2. python json.loads()中文问题-Python实现的json文件读取及中文乱码显示问题解决方法...
  3. 强制卸载域控制器命令
  4. 计算机二级vb重点知识,计算机二级《VB》历年考试重点知识
  5. java eden space_JVM虚拟机20:内存区域详解(Eden Space、Survivor Space、Old Gen、Code Cache和Perm Gen)...
  6. 开发指南专题三:JEECG微云快速开发平台项目编码规范
  7. 做游戏的小伙伴们注意了,DDoS还可以这样破!
  8. 文件那些事儿之一(初稿)
  9. Java——安全地停止线程
  10. cocoaPods 创建自己的依赖库
  11. Scikit-learn:模型选择Model selection之pipline和交叉验证
  12. 怎样修改美国的服务器节点,美国云服务器节点怎么
  13. Copula、CoVaR、Garch、DCC、藤Vine、BEKK、SV、ECM
  14. 结合模电分析电流源电路(简单晶体管电流源,Howland电流源,压控电流源)
  15. 数据分析|WordCloud PCA K-means - 「某电商平台」电脑评论分析
  16. JavaSE第二阶段之面向对象编程
  17. 沉浸其中,二次元高清图片
  18. 【Bandit Algorithms学习笔记】UCB算法的理论证明
  19. 大数据再出发-19Flink
  20. 杰理之省电容MIC收敛值【篇】

热门文章

  1. LeetCode 680. 验证回文字符串 Ⅱ
  2. 程序员面试金典 - 面试题 16.24. 数对和(双指针/哈希map)
  3. 二叉排序树的后序遍历序列必然是递增的_剑指offer 33——二叉搜索树的后序遍历序列...
  4. postek二次开发_20190626_二次开发BarTender打印机_C#代码_一边读取TID_一边打印_打印机POSTEK...
  5. 加速国内 Github 访问,下载的9种方案!
  6. android stackview,Android StackView 使用示例
  7. 局域网lan设置_4G工业路由器的WAN、LAN组网方式
  8. 首个视觉-语言预训练综述来了!
  9. 人脸识别 | 你的论文离CVPR , 还有多远?
  10. 在错误的数据上,刷到 SOTA 又有什么意义?