当前位置: 编程技术>php
本页文章导读:
▪PHP新手上路(十)
建设一个简单交互的网站(六) 9. 简易banner动态更替 不知大家有没有发现各大站点上的标头广告banner,我们每次访问这些站点时,都会看到不同的广告图标,或者如果你每次刷新页面.........
▪来自PHP.NET的入门教程
PHP是一种创建动态网页的工具。嵌入PHP代码的网页就像普通的HTML文件一样,你可以使用任何你喜欢的编辑器对它进行编辑。本教程的所描述的对象是PHP 3.0 . 我需要什么? 在本教程中,.........
▪PHP新手上路(九)
建设一个简单交互的网站(五) 8. 投票系统 在许多时候,我们需要收集上网者和网友们的意见。例如:新版页面与旧版页面的比较;对某一事情的看法;对体育比赛结果的预测等等。这.........
[1]PHP新手上路(十)
来源: 互联网 发布时间: 2013-11-30
建设一个简单交互的网站(六)
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=/blog_article/$randval.gif";
?>
我们可以发现,实现的程序非常简单:主要是先利用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="/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=/blog_article/$randval.gif";
break;
case "1";
echo "<a href=//personal.668.cc/haitang/index.htm><img border=0 src=/blog_article/$randval.gif";
break;
case "2";
echo "<a href=//gophp.heha.net/index.html><img border=0 src=/blog_article/$randval.gif";
break;
case "3";
echo "<a href=//gophp.heha.net/index.html><img border=0 src=/blog_article/$randval.gif";
break;
case "4";
echo "<a href=//personal.668.cc/haitang/index.htm><img border=0 src=/blog_article/$randval.gif";
break;
}
?>
</td>
<td width="52%">
<div align="center"><a href="/test/form.html" >自动发送邮件测试</a></div>
</td>
</tr>
<tr>
<td width="52%">
<div align="center"><a href="/test/php/php1.html" >简易轮回广告更替</a></div>
</td>
</tr>
<tr>
<td width="52%">
<div align="center"><a href="/password/password.html" >简易密码验证实例</a></div>
</td>
</tr>
</table>
<hr color="#ff9900" size="4">
</body>
</html>
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=/blog_article/$randval.gif";
?>
我们可以发现,实现的程序非常简单:主要是先利用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="/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=/blog_article/$randval.gif";
break;
case "1";
echo "<a href=//personal.668.cc/haitang/index.htm><img border=0 src=/blog_article/$randval.gif";
break;
case "2";
echo "<a href=//gophp.heha.net/index.html><img border=0 src=/blog_article/$randval.gif";
break;
case "3";
echo "<a href=//gophp.heha.net/index.html><img border=0 src=/blog_article/$randval.gif";
break;
case "4";
echo "<a href=//personal.668.cc/haitang/index.htm><img border=0 src=/blog_article/$randval.gif";
break;
}
?>
</td>
<td width="52%">
<div align="center"><a href="/test/form.html" >自动发送邮件测试</a></div>
</td>
</tr>
<tr>
<td width="52%">
<div align="center"><a href="/test/php/php1.html" >简易轮回广告更替</a></div>
</td>
</tr>
<tr>
<td width="52%">
<div align="center"><a href="/password/password.html" >简易密码验证实例</a></div>
</td>
</tr>
</table>
<hr color="#ff9900" size="4">
</body>
</html>
[2]来自PHP.NET的入门教程
来源: 互联网 发布时间: 2013-11-30
PHP是一种创建动态网页的工具。嵌入PHP代码的网页就像普通的HTML文件一样,你可以使用任何你喜欢的编辑器对它进行编辑。本教程的所描述的对象是PHP 3.0 .
我需要什么? 在本教程中,我们假设你的服务器已经支持PHP,并且所有的文件都以.php3作为扩展名。在大部分服务器上,这是PHP文件的缺省扩展名,你可以向你的管理员确认一下。如果你的服务器支持PHP,这就足够了。很简单,建立你的PHP文件并且把它放到你的服务器上,那么服务器将会巧妙的对它进行处理。这不需要编译什么,也不需要安装什么额外的工具。你可以这样认为:PHP文件是加入了一组全新的巧妙的标签的普通HTML文件。
你的第一段PHP代码 上面这段代码的色彩只是给你一个视觉上的帮助,让你更容易理解PHP的标签及表达式的不同部分。请注意这不像CGI程序,不需要有可执行权限。你可以把PHP文件当作包含一组特殊标签的HTML文件,它可以做许多你感兴趣的事情。
这个程序是非常简单的,你无需专门为此建立一个WEB页面。它所做的就是显示: Hello World。
如果你试验过这段代码,但它却没有输出什么,问题可能是你的服务器不支持PHP。请询问你的管理员,确认一下。
前例的重点是向你介绍PHP的标签。用"<?php"标签作为PHP代码的开始,加上一条PHP语句,再以"?>"标签结束。正如例中所示,在HTML文件中你可以自由地进入和退出PHP模式。
些有用的东西 让我们再来做点更有意义的事情。假如我们要来检查一下用户的浏览器是什么,可以检查浏览器发送给WEB服务器的用户代理(User Agent)字符串。这个信息存放在一个名为$HTTP_USER_AGNET的变量中,用下面的语句很简单地就可以显示出这个变量的值:
<?php echo $HTTP_USER_AGENT;?> 如果用户用的是Internet Explorer,那么显示的结果可能是: Mozilla/4.0 (compatible; MSIE 4.0; Windows 98) 实际上,用户的浏览器还传递许多其它的内容。用以下代码你就能得到这些变量的一个完整的列表:
<?php phpinfo();?> 把这段代码存进一个文件,比如叫info.php3,再把它上传到你的服务器上,用浏览器打开它,你会看到很多令你吃惊的东西。 你可以放置多个PHP语句在一组PHP标签中,也可以用一个代码块来做更多的事。例如:假如我们要检查一下浏览器是否为MSIE,可以用下面的这段代码:
<?php if (strstr($HTTP_USER_AGENT,"MSIE"))
{
echo "You are using Internet Explorer.<br>";
}
?> 这里我们将引入一些新的东西。 首先是“if”语句。如果你对于C语言的基本语法很熟悉,那么你就很容易看懂这段代码。如果不熟悉的话,建议找一些相关的书籍参考参考。PHP保留了C的简单语法,避免了C语言中难以控制的字符串和内存的处理。
第二,我们调用了一个函数:strstr()。strstr()是PHP内置的函数,用于在一个字符串中查找另外一个字符串,在例中我们在变量$HTTP_USER_AGENT中查找“MSIE”,如果找到字体串,那么该函数返回真值,即TRUE,否则反之。
下面我们再来看看如何进入和退出PHP模式,哪怕是在一个PHP代码块的中间:
<?php
if (strstr($HTTP_USER_AGENT,"MSIE")){
?>
<center><b>You are using Internet Explorer</b></center>
<?
}else{
?>
<center><b>You are not using Internet Explorer</b></center>
<?
}?>
用跳出PHP模式直接输出HTML代码的方法,来代替使用echo语句输出结果。非常重要的是:不能破坏php代码逻辑上的完整性,运行这段代码显示的结果也许是:
You are using Internet Explorer
处理表单 PHP的另一个强大的地方在于处理html文件中的表单。需要理解这样一个基本概念,所有HTML文件表单的元素会自动的以相同的名字被传送到目标页面当中。这好像有点难以理解,我们通过下面的例子来阐述这一点:
<form action="/blog_article/action.html" method="post">
Your Name: <input type=text name=name>
Your Age : <input type=text name=age>
<input type="submit">
</form>
这个表单只是包含了必须的HTML标签,并不完整。当用户填好了这张表单,并且按下“Submit”按钮,文件action.php3被调用了。假如说这个文件中包含下面的代码:
Hi <?php echo $name;?>. You are <?php echo $age;?> years old.
它执行的效果显而易见,因为变量$name和$age被PHP自动设置好了。
更多的? 这个教程可能会再扩充,目前就到此为止。
其它的教程请参考:
WebMonkey
DevShed
phpTidbits
PHPBuilder.com
我需要什么? 在本教程中,我们假设你的服务器已经支持PHP,并且所有的文件都以.php3作为扩展名。在大部分服务器上,这是PHP文件的缺省扩展名,你可以向你的管理员确认一下。如果你的服务器支持PHP,这就足够了。很简单,建立你的PHP文件并且把它放到你的服务器上,那么服务器将会巧妙的对它进行处理。这不需要编译什么,也不需要安装什么额外的工具。你可以这样认为:PHP文件是加入了一组全新的巧妙的标签的普通HTML文件。
你的第一段PHP代码 上面这段代码的色彩只是给你一个视觉上的帮助,让你更容易理解PHP的标签及表达式的不同部分。请注意这不像CGI程序,不需要有可执行权限。你可以把PHP文件当作包含一组特殊标签的HTML文件,它可以做许多你感兴趣的事情。
这个程序是非常简单的,你无需专门为此建立一个WEB页面。它所做的就是显示: Hello World。
如果你试验过这段代码,但它却没有输出什么,问题可能是你的服务器不支持PHP。请询问你的管理员,确认一下。
前例的重点是向你介绍PHP的标签。用"<?php"标签作为PHP代码的开始,加上一条PHP语句,再以"?>"标签结束。正如例中所示,在HTML文件中你可以自由地进入和退出PHP模式。
些有用的东西 让我们再来做点更有意义的事情。假如我们要来检查一下用户的浏览器是什么,可以检查浏览器发送给WEB服务器的用户代理(User Agent)字符串。这个信息存放在一个名为$HTTP_USER_AGNET的变量中,用下面的语句很简单地就可以显示出这个变量的值:
<?php echo $HTTP_USER_AGENT;?> 如果用户用的是Internet Explorer,那么显示的结果可能是: Mozilla/4.0 (compatible; MSIE 4.0; Windows 98) 实际上,用户的浏览器还传递许多其它的内容。用以下代码你就能得到这些变量的一个完整的列表:
<?php phpinfo();?> 把这段代码存进一个文件,比如叫info.php3,再把它上传到你的服务器上,用浏览器打开它,你会看到很多令你吃惊的东西。 你可以放置多个PHP语句在一组PHP标签中,也可以用一个代码块来做更多的事。例如:假如我们要检查一下浏览器是否为MSIE,可以用下面的这段代码:
<?php if (strstr($HTTP_USER_AGENT,"MSIE"))
{
echo "You are using Internet Explorer.<br>";
}
?> 这里我们将引入一些新的东西。 首先是“if”语句。如果你对于C语言的基本语法很熟悉,那么你就很容易看懂这段代码。如果不熟悉的话,建议找一些相关的书籍参考参考。PHP保留了C的简单语法,避免了C语言中难以控制的字符串和内存的处理。
第二,我们调用了一个函数:strstr()。strstr()是PHP内置的函数,用于在一个字符串中查找另外一个字符串,在例中我们在变量$HTTP_USER_AGENT中查找“MSIE”,如果找到字体串,那么该函数返回真值,即TRUE,否则反之。
下面我们再来看看如何进入和退出PHP模式,哪怕是在一个PHP代码块的中间:
<?php
if (strstr($HTTP_USER_AGENT,"MSIE")){
?>
<center><b>You are using Internet Explorer</b></center>
<?
}else{
?>
<center><b>You are not using Internet Explorer</b></center>
<?
}?>
用跳出PHP模式直接输出HTML代码的方法,来代替使用echo语句输出结果。非常重要的是:不能破坏php代码逻辑上的完整性,运行这段代码显示的结果也许是:
You are using Internet Explorer
处理表单 PHP的另一个强大的地方在于处理html文件中的表单。需要理解这样一个基本概念,所有HTML文件表单的元素会自动的以相同的名字被传送到目标页面当中。这好像有点难以理解,我们通过下面的例子来阐述这一点:
<form action="/blog_article/action.html" method="post">
Your Name: <input type=text name=name>
Your Age : <input type=text name=age>
<input type="submit">
</form>
这个表单只是包含了必须的HTML标签,并不完整。当用户填好了这张表单,并且按下“Submit”按钮,文件action.php3被调用了。假如说这个文件中包含下面的代码:
Hi <?php echo $name;?>. You are <?php echo $age;?> years old.
它执行的效果显而易见,因为变量$name和$age被PHP自动设置好了。
更多的? 这个教程可能会再扩充,目前就到此为止。
其它的教程请参考:
WebMonkey
DevShed
phpTidbits
PHPBuilder.com
[3]PHP新手上路(九)
来源: 互联网 发布时间: 2013-11-30
建设一个简单交互的网站(五)
8. 投票系统
在许多时候,我们需要收集上网者和网友们的意见。例如:新版页面与旧版页面的比较;对某一事情的看法;对体育比赛结果的预测等等。这时候,你需要一个非常有效的网上调查系统。使用PHP就可以非常方便地实现你的这一构想。
8.1 投票系统(mypolls.php3):
<?
$status=0;
if(isset($polled)&&($polled=="c-e")){
$status=1;
}
#echo "$status";
if(isset($poll)&&($status==0)){
setcookie("polled","c-e",time()+86400,"/");#time=24h
}
?>
<html>
<head>
<title>新版页面调查</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style type="text/css">
<!--
.tb { border="1" bordercolor="#009933" cellspacing="0" font-size: 9pt; color: #000000}
.head { font-family: "宋体"; font-size: 12pt; font-weight: bold; color: #009933; text-decoration: none}
.pt9 { font-size: 9pt}
a.p9:link { font-size: 9pt; color: #000000; text-decoration: none}
a.p9:visited { font-size: 9pt; color: #000000; text-decoration: none }
a.p9:hover { font-size: 9pt; color: #FF0000; text-decoration: underline}
a.p9:active { font-size: 9pt; color: #FF0000; text-decoration: underline }
-->
</style>
</head>
<body bgcolor="#FFFFFF">
<div >与旧版页面相比较您觉得新版页面:</div><br>
<?
if(!isset($submit)){
?>
<form action="/blog_article/myPolls.html" method="get">
<input type="radio" name="poll_voteNr" value="1" checked >
<span >信息量更大</span> <br>
<input type="radio" name="poll_voteNr" value="2" >
<span >网页更精美</span> <br>
<input type="radio" name="poll_voteNr" value="3" >
<span >没什么改进</span> <br>
<input type="radio" name="poll_voteNr" value="4" >
<span >其它</span> <br>
<input type="submit" name="submit" value="OK">
<input type="hidden" name="poll" value="vote">
<A HREF="/blog_article/myPolls/submit/OK.html" >查看调查结果</A>
</form>
<?
/*
如果想增加其它的选项可直接加上即可
*/
}else{
$descArray=array(1=>"信息量更大",
2=>"网页更精美",
3=>"没什么改进",
4=>"其它"
);
$poll_resultBarHeight = 9; // height in pixels of percentage bar in result table
$poll_resultBarScale = 1; // scale of result bar (in multiples of 100 pixels)
$poll_tableHeader="<table border=1 >";
$poll_rowHeader="<tr>";
$poll_dataHeader="<td align=center>";
$poll_dataFooter="</td>";
$poll_rowFooter="</tr>";
$poll_tableFooter="</table>";
$coutfile="data.pol";
$poll_sum=0;
// read counter-file
if (file_exists( $coutfile))
{
$fp = fopen( $coutfile, "rt");
while ($Line = fgets($fp, 10))
{
// split lines into identifier/counter
if (ereg( "([^ ]*) *([0-9]*)", $Line, $tmp))
{
$curArray[(int)$tmp[1]] = (int)$tmp[2];
$poll_sum+=(int)$tmp[2];
}
}
// close file
fclose($fp);
}else{//
for ($i=1;$i<=count($descArray);$i++){
$curArray[$i]=0;
}
}
if(isset($poll)){
$curArray[$poll_voteNr]++;
$poll_sum++;
}
echo $poll_tableHeader;
// cycle through all options编历数组
reset($curArray);
while (list($K, $V) = each($curArray))
{
$poll_optionText = $descArray[$K];
$poll_optionCount = $V;
echo $poll_rowHeader;
if($poll_optionText != "")
{
echo $poll_dataHeader;
echo $poll_optionText;
echo $poll_dataFooter;
if($poll_sum)
$poll_percent = 100 * $poll_optionCount / $poll_sum;
else
$poll_percent = 0;
echo $poll_dataHeader;
if ($poll_percent > 0)
{
$poll_percentScale = (int)($poll_percent * $poll_resultBarScale);
}
printf(" %.2f %% (%d)", $poll_percent, $poll_optionCount);
echo $poll_dataFooter;
}
echo $poll_rowFooter;
}
echo "总共投票次数:<font color=red> $poll_sum</font>";
echo $poll_tableFooter;
echo "<br>";
echo "<input type="submit" name="Submit1" value="返回主页" onClick="javascript:location='http://gophp.heha.net/index.html'">";
echo " <input type="submit" name="Submit2" value="重新投票" onClick="javascript:location='http://gophp.heha.net/mypolls.php3'">";
if(isset($poll)){
// write counter file
$fp = fopen($coutfile, "wt");
reset($curArray);
while (list($Key, $Value) = each($curArray))
{
$tmp = sprintf( "%s %dn", $Key, $Value);
fwrite($fp, $tmp);
}
// close file
fclose($fp);
}
}
?>
</body>
</html>
注释:从上面我们可以看出该投票系统的基本过程:
1、打开文件取得数据到数组$curArray(文件不存在则初始化数组$curArray)
2、编历数组,处理数据得到所需值
3、计算百分比,控制统计bar图像宽度
4、将数据保存到"data.pol"中
这里有一点是需要注意:这里的data.pol文本文件需要有写权限。
8. 投票系统
在许多时候,我们需要收集上网者和网友们的意见。例如:新版页面与旧版页面的比较;对某一事情的看法;对体育比赛结果的预测等等。这时候,你需要一个非常有效的网上调查系统。使用PHP就可以非常方便地实现你的这一构想。
8.1 投票系统(mypolls.php3):
<?
$status=0;
if(isset($polled)&&($polled=="c-e")){
$status=1;
}
#echo "$status";
if(isset($poll)&&($status==0)){
setcookie("polled","c-e",time()+86400,"/");#time=24h
}
?>
<html>
<head>
<title>新版页面调查</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style type="text/css">
<!--
.tb { border="1" bordercolor="#009933" cellspacing="0" font-size: 9pt; color: #000000}
.head { font-family: "宋体"; font-size: 12pt; font-weight: bold; color: #009933; text-decoration: none}
.pt9 { font-size: 9pt}
a.p9:link { font-size: 9pt; color: #000000; text-decoration: none}
a.p9:visited { font-size: 9pt; color: #000000; text-decoration: none }
a.p9:hover { font-size: 9pt; color: #FF0000; text-decoration: underline}
a.p9:active { font-size: 9pt; color: #FF0000; text-decoration: underline }
-->
</style>
</head>
<body bgcolor="#FFFFFF">
<div >与旧版页面相比较您觉得新版页面:</div><br>
<?
if(!isset($submit)){
?>
<form action="/blog_article/myPolls.html" method="get">
<input type="radio" name="poll_voteNr" value="1" checked >
<span >信息量更大</span> <br>
<input type="radio" name="poll_voteNr" value="2" >
<span >网页更精美</span> <br>
<input type="radio" name="poll_voteNr" value="3" >
<span >没什么改进</span> <br>
<input type="radio" name="poll_voteNr" value="4" >
<span >其它</span> <br>
<input type="submit" name="submit" value="OK">
<input type="hidden" name="poll" value="vote">
<A HREF="/blog_article/myPolls/submit/OK.html" >查看调查结果</A>
</form>
<?
/*
如果想增加其它的选项可直接加上即可
*/
}else{
$descArray=array(1=>"信息量更大",
2=>"网页更精美",
3=>"没什么改进",
4=>"其它"
);
$poll_resultBarHeight = 9; // height in pixels of percentage bar in result table
$poll_resultBarScale = 1; // scale of result bar (in multiples of 100 pixels)
$poll_tableHeader="<table border=1 >";
$poll_rowHeader="<tr>";
$poll_dataHeader="<td align=center>";
$poll_dataFooter="</td>";
$poll_rowFooter="</tr>";
$poll_tableFooter="</table>";
$coutfile="data.pol";
$poll_sum=0;
// read counter-file
if (file_exists( $coutfile))
{
$fp = fopen( $coutfile, "rt");
while ($Line = fgets($fp, 10))
{
// split lines into identifier/counter
if (ereg( "([^ ]*) *([0-9]*)", $Line, $tmp))
{
$curArray[(int)$tmp[1]] = (int)$tmp[2];
$poll_sum+=(int)$tmp[2];
}
}
// close file
fclose($fp);
}else{//
for ($i=1;$i<=count($descArray);$i++){
$curArray[$i]=0;
}
}
if(isset($poll)){
$curArray[$poll_voteNr]++;
$poll_sum++;
}
echo $poll_tableHeader;
// cycle through all options编历数组
reset($curArray);
while (list($K, $V) = each($curArray))
{
$poll_optionText = $descArray[$K];
$poll_optionCount = $V;
echo $poll_rowHeader;
if($poll_optionText != "")
{
echo $poll_dataHeader;
echo $poll_optionText;
echo $poll_dataFooter;
if($poll_sum)
$poll_percent = 100 * $poll_optionCount / $poll_sum;
else
$poll_percent = 0;
echo $poll_dataHeader;
if ($poll_percent > 0)
{
$poll_percentScale = (int)($poll_percent * $poll_resultBarScale);
}
printf(" %.2f %% (%d)", $poll_percent, $poll_optionCount);
echo $poll_dataFooter;
}
echo $poll_rowFooter;
}
echo "总共投票次数:<font color=red> $poll_sum</font>";
echo $poll_tableFooter;
echo "<br>";
echo "<input type="submit" name="Submit1" value="返回主页" onClick="javascript:location='http://gophp.heha.net/index.html'">";
echo " <input type="submit" name="Submit2" value="重新投票" onClick="javascript:location='http://gophp.heha.net/mypolls.php3'">";
if(isset($poll)){
// write counter file
$fp = fopen($coutfile, "wt");
reset($curArray);
while (list($Key, $Value) = each($curArray))
{
$tmp = sprintf( "%s %dn", $Key, $Value);
fwrite($fp, $tmp);
}
// close file
fclose($fp);
}
}
?>
</body>
</html>
注释:从上面我们可以看出该投票系统的基本过程:
1、打开文件取得数据到数组$curArray(文件不存在则初始化数组$curArray)
2、编历数组,处理数据得到所需值
3、计算百分比,控制统计bar图像宽度
4、将数据保存到"data.pol"中
这里有一点是需要注意:这里的data.pol文本文件需要有写权限。
最新技术文章: