概述
实验五 PHP中的文件操作
实验目的:
掌握PHP中操作文件的方法
掌握PHP中字符串相关函数的应用
实验内容:
1、学习<input type="radio">的使用方法,设计一个投票选择器:
最后显示选中的项目。
提示:
显示样式的设计如香蕉:
<p><inputtype="radio" name="vote" id="vote"value="org" /> 桔子</p>
首先判断有没有进行投票操作,利用isset($_POST['submit']),
投票后判断有没有选择单选框,利用isset($_POST['vote'])(如果没有选中提示用户进行选择)
再通过读取$_POST['vote']的值,如果选中香蕉,则$_POST['vote']的值为banana(可以利用if或者switch结构进行处理)。
注意三个checkbox要使用相同名称vote。
具体实现:
<!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>实验5-1</title>
</head>
<body>
<form method="post" name="form1" action="">
<p>您喜欢什么样的水果?请投票</p>
<p><input type="radio" name="vote" id="vote1" value="banana" />
<label for="vote1" >香蕉</label>
</p>
<p><input type="radio" name="vote" id="vote2" value="apple" />
<label for="vote2">苹果</label>
</p>
<p><input type="radio" name="vote" id="vote3" value="orange" />
<label for="vote2">桔子</label>
</p>
<p><input type="radio" name="vote" id="vote3" value="pear" />
<label for="vote2">梨子</label>
</p>
<p><input type="submit" name="submit" id="submit" vlaue="投票" /></p>
</form>
<?php
if(isset($_POST['submit']))
{
if(isset($_POST['vote']))
{
$vote = $_POST['vote'];
switch($vote)
{
case 'banana': echo "您选择的是香蕉";break;
case 'apple': echo "您选择的是苹果"; break;
case 'orange': echo "您选择的是桔子"; break;
case 'pear': echo "您选择的是梨子"; break;
default: break;
}
}
else
echo "请选择你喜欢的水果";
}
?>
</body>
</html>
2、根据上一题,统计投票总计数,记录在php文件所在目录中的另一个文件vote.txt中,再最后显示各个选项的投票计数值。
提示:
1)文件操作相关函数:
(1)创建文件:
if(!file_exists(“文件名”)) //进行判断,文件不存在创建文件
{
$handle=fopen(“文件”,"w+");
fwrite($handle,"写进文件的内容");
fclose($handle);
}
(2)读取文件内容使用 :$Str=fgets($handle); 读一行
(3)字符串拆分成数组函数 $Arry=explode("|",$Str); //主要是前面数字字符之间以”|”间隔,拆分后的数组元素依次是Arry[0],Arryp[1]……
(4)数组合并为字符串:$str=implode("|",$Arry);
(5)更新文件操作函数fwrite($handle,写入内容);
文件操作函数对应的参数如下表所示:
具体实现:
<!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>实验5-1</title>
</head>
<body>
<form method="post" name="form1" action="">
<p>您喜欢什么样的水果?请投票</p>
<p><input type="radio" name="vote" id="vote1" value="banana" />
<label for="vote1" >香蕉</label>
</p>
<p><input type="radio" name="vote" id="vote2" value="apple" />
<label for="vote2">苹果</label>
</p>
<p><input type="radio" name="vote" id="vote3" value="orange" />
<label for="vote2">桔子</label>
</p>
<p><input type="radio" name="vote" id="vote3" value="pear" />
<label for="vote2">梨子</label>
</p>
<p><input type="submit" name="submit" id="submit" vlaue="投票" /></p>
</form>
<?php
if(!file_exists("vote.txt"))//判断文本文件vote.txt是否存在
{
//如果不存在,则创建文件
$handle = fopen("vote.txt", "w+");
fwrite($handle, "0|0|0|0"); //采用|分隔
fclose($handle);
//关闭文件流
}
if(isset($_POST['submit']))
{
if(isset($_POST['vote']))
{
$vote = $_POST['vote'];
$handle = fopen("vote.txt", "r+");
//打开文件流
$vstr = fgets($handle);
//读一行
$voteArray = explode("|", $vstr);//拆分,分隔为字符串数组
switch($vote)
//投票统计
{
case 'banana': $voteArray[0]++;break;
case 'apple': $voteArray[1]++; break;
case 'orange':$voteArray[2]++; break;
case 'pear':$voteArray[3]++; break;
default: break;
}
$voteNewArray = implode("|", $voteArray);
//合并字符串数组
$handle = fopen("vote.txt", "w+");
fwrite($handle, $voteNewArray);
//从新写入文件
fclose($handle);
//关闭文件流
echo "投票结果如下:"."<br/>";
echo "<br/>";
echo "香蕉:".$voteArray[0]."<br/>";
echo "苹果:".$voteArray[1]."<br/>";
echo "桃子:".$voteArray[2]."<br/>";
echo "梨子:".$voteArray[3]."<br/>";
}
else
echo "请选择你喜欢的水果";
}
?>
</body>
</html>
3、设计一个PHP网页,输入下列5个学生的学号,如果有相同的学号则只保留一个,找到有5位为“01248” 的学生,改为“01111”,最后将所有学号输出,以逗号“,”为分隔符。
学号:
201030235656
201030230479
201030235656
201030201248
201037815687
提示:
1) array_splice(array,offset,length,array)
2)echo"<input type='text' name='stu[]' size='5'>"; 动态产生html控件
3)count(数组)返回数组元素个数
4)strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。
语法
strstr(string,search)参数 描述:
string 必需。规定被搜索的字符串。
search 必需。规定所搜索的字符串。如果该参数是数字,则搜索匹配数字 ASCII 值的字符。
5)str_replace()使用一个字符串替换字符串中的另一些字符。
str_replace(find,replace,string,count)
参数 描述 :
find 必需。规定要查找的值。
replace 必需。规定替换 find 中的值的值。
string 必需。规定被搜索的字符串。
count 可选。一个变量,对替换数进行计数。
具体实现:
<!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>实验5</title>
</head>
<body>
<?php
echo "请输入学号:"."<br/>";
echo "<form method='post'>";
//动态产生HTML控件
for($i = 1; $i < 6; $i++)
{
echo "<input type='text' name='stu[]' size='12'>";
if($i<5)
echo "-";
}
echo "<input type='submit' name='confirm' value='提交'>";
echo "</form>";
?>
<?php
if(isset($_POST['confirm']))
{
$jsj=array();
$stu=$_POST['stu'];
for($i=0;$i<count($stu);$i++)
{
for($j=$i+1;$j<count($stu);$j++)
{
if(strcmp($stu[$i],$stu[$j])==0)
{
array_splice($stu,$j,1);
//删除重复元素
//删除元素后,j值应该前移一位,执行j++操作才可以保证下次取得是后一个元素
$j--;
}
}
}
$k=0;
for(;$k<count($stu);$k++)
{
if(strstr($stu[$k],"01248"))
{
$string=str_replace("01248","01111",$stu[$k]);
$stu[$k]=$string;
}
}
echo "字符替换后,学生的学号如下:<br>";
$strnew=implode(",",$stu);
echo $strnew;
}
?>
</body>
</html>
最后
以上就是纯真高跟鞋为你收集整理的PHP课堂--实验5的全部内容,希望文章能够帮你解决PHP课堂--实验5所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复