PHP实现网页自动更新块
2005-07-30 16:18:05 来源:WEB开发网 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閻愵剙鍔ょ紓宥咃躬瀵鎮㈤崗灏栨嫽闁诲酣娼ф竟濠偽i鍓х<闁诡垎鍐f寖闂佺娅曢幑鍥灳閺冨牆绀冩い蹇庣娴滈箖鏌ㄥ┑鍡欏嚬缂併劎绮妵鍕箳鐎n亞浠鹃梺闈涙搐鐎氫即鐛崶顒夋晬婵絾瀵ч幑鍥蓟閻斿摜鐟归柛顭戝枛椤牆顪冮妶搴′簼缂侇喗鎸搁悾鐑藉础閻愬秵妫冮崺鈧い鎺戝瀹撲礁鈹戦悩鎻掝伀缁惧彞绮欓弻娑氫沪閹规劕顥濋梺閫炲苯澧伴柟铏崌閿濈偛鈹戠€n€晠鏌嶆潪鎷屽厡闁汇倕鎳愮槐鎾存媴閸撴彃鍓卞銈嗗灦閻熲晛鐣烽妷褉鍋撻敐搴℃灍闁绘挻娲橀妵鍕箛闂堟稐绨肩紓浣藉煐濮樸劎妲愰幘璇茬闁冲搫鍊婚ˇ鏉库攽椤旂》宸ユい顓炲槻閻g兘骞掗幋鏃€鐎婚梺瑙勬儗閸樺€熲叺婵犵數濮烽弫鍛婃叏椤撱垹纾婚柟鍓х帛閳锋垶銇勯幒鍡椾壕缂備礁顦遍弫濠氱嵁閸℃稒鍊烽柛婵嗗椤旀劕鈹戦悜鍥╃У闁告挻鐟︽穱濠囨嚃閳哄啰锛滈梺褰掑亰閸欏骸鈻撳⿰鍫熺厸閻忕偟纭堕崑鎾诲箛娴e憡鍊梺纭呭亹鐞涖儵鍩€椤掑啫鐨洪柡浣圭墪閳规垿鎮欓弶鎴犱桓闂佸湱枪閹芥粎鍒掗弮鍫熷仺缂佸顕抽敃鍌涚厱闁哄洢鍔岄悘鐘绘煕閹般劌浜惧┑锛勫亼閸婃牠宕濋敃鈧…鍧楀焵椤掍胶绠剧€光偓婵犱線鍋楀┑顔硷龚濞咃絿妲愰幒鎳崇喓鎷犻懠鑸垫毐闂傚倷鑳舵灙婵炲鍏樺顐ゆ嫚瀹割喖娈ㄦ繝鐢靛У绾板秹寮查幓鎺濈唵閻犺櫣灏ㄥ銉р偓瑙勬尭濡繂顫忛搹鍦<婵☆垰鎼~宥囩磽娴i鍔嶉柟绋垮暱閻g兘骞嬮敃鈧粻濠氭偣閸パ冪骇鐎规挸绉撮—鍐Χ閸℃ê闉嶇紓浣割儐閸ㄥ墎绮嬪澶嬪€锋い鎺嶇瀵灝鈹戦埥鍡楃仯闁告鍕洸濡わ絽鍟崐鍨叏濡厧浜鹃悗姘炬嫹

作者: 陈新征 出处: 天极网
前言:现在很多有个人主页或者博客的朋友选择租用虚拟主机,而相当一部分虚拟主机支持php。如果你有一个支持php的主机空间,有没有用php把自己的网站武装起来呢?
能不能让php为你的网页添加一些每隔一段时间就自动更新的内容,以更好的吸引访客呢?实现这一功能并不需要太高深的编程知识,请看以下例子:
(一)英语谚语
让我们来看一个简单的应用:让php程序从数据库中随机提取一行记录,显示在网页上,隔15分钟再去读取另一条记录。英汉对照的谚语是个适合显示的内容。
考虑到放置个人主页的廉价虚拟主机多数不支持MySQL之类的数据库,我们使用文本型数据文件来存放数据,这对于流量不很大的网站来说足够了。建立一个文本文件,命名为english.dat,内容如下:
A bad beginning makes a bad ending. 恶其始者必恶其终。
A bad bush is better than the open field. 有胜于无。
A bad comPRomise is better than a good lawsuit. 吃亏的和解也比胜诉强。
A bad conscience is a snake in one’s heart. 做贼心虚。
A bad custom is like a good cake, better broken than kept. 坏习惯像鲜馅饼,分食要比保存好。
A bad padlock invites a picklock. 开门揖盗。
……
注意,每行是一条完整的记录,中间不要换行;文件中不能有半角的双引号( " )否则在输出数据时程序会解析出错。网上有很多这样的内容,搜索一下即可,也可以去我的网站http://www.musicfly.net/english.dat下载一个数据文件。
下面就是编写读取数据的程序了。建立一个文本文件,命名为english.dat,加入源代码如下:
<?php
$filename = ’english.dat’; //数据文件名
$refresh = 900; //更新周期(以秒为单位,可根据需要自行调整)
$data = file($filename); //将数据文件装入一个数组
$num_lines = count($data); //数据文件行数,也就是记录条数 mt_srand(floor(time() / $refresh));
$id = mt_rand(0, $num_lines - 1); //随机选择一条记录号
$content = chop($data[$id]); //根据记录号选择相应的数据,并截去最后的换行符
echo "document.write(\"$content\");"; //用javascript形式输出数据
?>
将english.dat和english.php存盘,上传至服务器的同一个目录下。
最后一道工序就是让你的网页调用这个php程序来显示内容了。因为php运行的结果是以Javascript形式输出的,我们只要把这段php当成一段javascrupt来调用即可,方法是:用记事本或网页编辑软件打开你要修改的html文件,在你想让动态内容显示的位置加入以下代码:
<script language="javascript" src="english.php"></script>
注意,如果你修改的html文件和english.php不在一个目录下,要在src="..."里注明english.php的相对路径。
把这个修改后的html文件上传至服务器,在浏览器中打开。如果你每一步做得都正确,应该就可以看到数据文件中的内容显示出来了!过15分钟刷新一下页面看看,是不是显示的内容变化了?而你并没有为更新这些内容做什么额外的劳动,php程序为你做了。
如果你的朋友想在自己的网页或者博客上实现同样的功能而又没有支持php的主机,可以通过以<script language="javascript" src="http://你的网址/程序路径/english.php"></script>的方式调用你主机上的程序来显示同样的内容。
当然,这个程序还可能存在编码方式不兼容的问题,因为内容都是以gb2312编码显示出来的,用在UTF编码的网页上,中文会变成乱码。解决的方法不在本文的讨论范围内,请搜索有关教程。
实现了这个功能,你已经开始从html的静态世界向php的动态世界进军了。来日方长,下一次,让我们看看怎样用php为你的网页加个“每日星座运势”功能。
(本文的程序均在php4/php5环境下运行通过。)
更多精彩
赞助商链接