实验2-4 PHP基础语法编程(四)
1.实验学时
2学时
2.实验目的
1、进一步熟悉 PHP 基本语法;
2、掌握 PHP 中字符串数据的定义与常用处理方法;
3、掌握 PHP 中数组数据的定义与常用处理方法;
4、掌握 PHP 中的预定义数组及其使用方法。
3.实验设备
PC计算机,配置Win10操作系统,Word2019,PHPStudy+eclipse for php
4.实验内容及步骤
(1)实验步骤
①新建 Project File—new—Local PHP Project,命名为PHP2_4
②新建两个php文件,右键单击工程名—new—PHP File
③输入代码并保存
④在浏览器验证代码的正确性并输出运行结果
(2)实验内容
1)
循环生成4个input,输入学号,
点提交按钮后输出所有学号,查找出1811开始的学号,替换为1810,然后输出,格式如图所示:
源代码:2_4_1.php
<?php
echo "请输入学号:</br>";
echo "<form method=post>";
for ($i = 1 ; $i < 5 ; $i ++){
if ($i >= 2) echo "-";
echo "<input type='text' name='id[]' size='6'>";
}
echo "<input type='submit' name='sub' value='提交'>";
echo "</form>";
if (isset($_POST['sub'])){
$k = 0;
$jsj = array();
$stu = $_POST['id'];//将文本框的值赋给数组$xuehao不用在变量后面加[]
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, $i,1);//将数组中重复的值删除
}
}
$str = implode(",", $stu);//使用逗号作为连接符将数组转化为字符串
echo "所有的学生学号如下:</br>";
echo $str."</br>";
foreach ($stu as $value){
if (strstr($value, "1811")){
$string = str_replace("1811", "1810", $value);
$jsj[$k] = $string;
$k++;
}
}
echo "计算机专业的学号如下:</br>";
echo implode(",", $jsj);
}
?>
结果截图:
点提交之前:
点提交之后:
2) 制作类似下图所示界面,投诉信息可以自定义,要求点击提交按钮后,输出选中和输入的投诉信息。
源代码:2_4_2.php
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>投诉页面</title>
<style type="text/css">
#tijiao {
background-color: rgb(0, 150, 138);
color: white;
width: 50px;
height: 30px;
border-color: rgb(0, 150, 138);
border-style: dashed;
}
#chongzhi {
width: 50px;
height: 30px;
}
</style>
</head>
<body>
<form name="form" method="POST" action="">
<table>
<tr>
<td valign="top" align="right">投诉类型</td>
<td><input id="check" type="checkbox" name="like[0]" value="态度不好">态度不好 <br>
<input id="check" type="checkbox" name="like[1]" value="业务不熟">业务不熟 <br>
<input id="check" type="checkbox" name="like[2]" value="没人接电话">没人接电话
</td>
</tr>
<tr>
<td valign="top" align="right">详情</td>
<td><textarea rows="5" cols="30" name="desc"></textarea></td>
</tr>
<tr>
<td></td>
<td><input id="tijiao" type="submit" value="提交" name="ok">
<input id="chongzhi" type="reset" value="重置">
</td>
</tr>
</table>
</form>
</body>
</html>
<?php
$like=array(
array('态度不好'),
array('业务不熟'),
array('没人接电话')
);
if (isset($_POST['ok'])){
$like = $_POST['like'];
$desc = $_POST['desc'];
foreach($like as $k=>$v){
echo $k.'->'.$v.'</br>';
}
// while(list($key,$value)=@each($like)){//用while循环也是可以的
// echo $key.'->'.$value.'</br>';
// }
echo $desc;
}
?>
结果截图:
点提交之后:
如果什么都不勾选,也就是传过来的数组是空的时候,会报错
我们需要在给foreach循环加一个前提条件:
if(is_array($like) && !emptyempty($like)){
foreach($like as $k=>$v){
echo $k.'->'.$v.'</br>';
}
// while(list($key,$value)=@each($like)){//用while循环也是可以的
// echo $key.'->'.$value.'</br>';
// }
}
昨天第三个小题没有写完,今天更新一下
3) 已知数组数据如下:
$books=array(
array("name"=>"我的2020","price"=>20.0,"author"=>"wang"),
array("name"=>"PHP程序设计","price"=>48.0,"author"=>"zhang"),
array("name"=>"C++面向对象程序设计","price"=>30.0,"author"=>"li"),
array("name"=>"python程序设计","price"=>40.0,"author"=>"zhou"),
array("name"=>"时间简史","price"=>25.0,"author"=>"sun"),
);
要求编码实现类似图的界面,数据以表格形式输出,表格格式不限,数组内容输出即可。
源代码:2_4_4.php
<?php
$books=array(
array("name"=>"我的2020","price"=>20.0,"author"=>"wang"),
array("name"=>"PHP程序设计","price"=>48.0,"author"=>"zhang"),
array("name"=>"C++面向对象程序设计","price"=>30.0,"author"=>"li"),
array("name"=>"python程序设计","price"=>40.0,"author"=>"zhou"),
array("name"=>"时间简史","price"=>25.0,"author"=>"sun"),
);
//创建表格将数组循环输入
echo '<table border="1" width="600" align="center">';
echo '<tr>';
echo '<td>序号</td><td>书名</td><td>价格</td><td>作者</td>';
echo '</tr>';
foreach ($books as $k=>$v){
echo '<tr>';
echo "<td>".($k + 1)."</td>";
echo "<td>".$v['name']."</td>";
echo "<td>".$v['price']."</td>";
echo "<td>".$v['author']."</td>";
echo '</tr>';
}
echo '</table>';
?>
结果截图:
至于表格有点丑,这就是页面渲染的问题了,我在这里就不写了,有改进的时候再更新吧!
对了对了,最后,我还想问一句,你们html代码和php代码放一起的时候,以谁的格式插入代码段呀?