PHP实验报告题目汇总(层次递进,全面丰富)

2023-10-11 17:40

本文主要是介绍PHP实验报告题目汇总(层次递进,全面丰富),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我将本学期的多次php实验整理成了博客,将知识点一步步解析清楚。


文章目录

  • 实验一
  • 实验二 数组
  • 实验三 PHP与Web交互
  • 实验四 文件上传与字符串方法

实验一


了解PHP的语言基础,流程控制语句

一:定义变量a=100,b=25,分别将a和b进行加减乘除,将加减乘除的结果分别存放在变量add,sub,mul,div中,并输出结果。

输出格式如下所示:

a + b = 125
a - b = 75
a * b = 2500
a / b = 4

代码:

<?php$a = 100;$b = 25;$add = $a + $b;$sub = $a - $b;$mul = $a * $b;$div = $a / $b;echo "a + b = $add <br>";echo "a - b = $sub <br>";echo "a * b = $mul <br>";echo "a / b = $div";
?>

几个知识点:

  • <?php是php脚本开始的标志
  • ?>是php脚本结束的标志
  • php中每条语句,以;结束
  • php中的变量名称需要使用$和标识符表示,变量名区分大小写(而函数名称不区分大小写

最后四行是输出语句echo "";
其中,<br>是一个标签,作用:在页面中换行

双引号和单引号的区别:

  • 它们都是用来定义字符串的
  • 如果字符串中有变量值:
    双引号:输出的是变量值
    单引号:输出的是字符串(将变量看作字符串输出)
<?php$a = 100;echo "a = $a <br>";//a = 100echo 'a = $a <br>';//a = $a       
?>

二:计算半径为12的圆的面积。

输出格式如下所示:

半径为12的圆的面积是:452.3893421

代码:

<?php$r = 12;$area = number_format($r * $r * pi(), 7);echo "半径为12的圆的面积是:$area";
?>

两个函数:

  • pi()圆周率函数
  • number_format($erea, 7),保留$area小数点后7位

三:已知小明每月工资8000元,每月需还银行房贷3500元,每月消费1000元,请通过编写PHP程序计算并输出每月总支出、剩余工资和房贷占工资的比例。

输出格式如下所示:

每月总支出:4500
剩余工资:3500
房贷占工资的比例:43.75%

代码:

<?php$salary = 8000;$housing_loan = 3500;$consume = 1000;$pay = $housing_loan + $consume;$odd_salary = $salary - $pay;$ratio = $housing_loan / $salary * 100;echo "每月总支出:$pay <br>";echo "剩余工资:$odd_salary <br>";echo "房贷占工资的比例:".$ratio."%<br>";
?>

第四个输出语句,还是可以这么写:

echo "房贷占工资的比例:$ratio%<br>";

字符串连接符:

  • 就是英文小数点.
  • 例如"房贷占工资的比例:".$ratio."%<br>"
    这样看:"房贷占工资的比例:"拼接$ratio拼接"%<br>"

四:计算200以内偶数的和,即求2+4+6+……+200的值。

输出格式如下所示:

200以内偶数的和是:10100

代码:

<?php$sum = 0;for($i = 2; $i <= 200; $i += 2){$sum += $i;}echo "200以内偶数的和是:$sum";
?>

赋值运算符:

  • $i += 2即:$i = $i + 2
  • $sum += $i即:$sum = $sum + $i

本题考察的是循环哦

五:输出一个由*组成的三角形。

输出格式如下所示:

*
**
***
****
*****

代码:

<?phpfor($i = 1; $i <= 5; $i++){for($j = 1; $j <= $i; $j++){echo "*";}echo "<br>";}
?>

依旧是考察循环,其实双重循环也很好理解的,$i代表列数,$j代表行数,$j <= $i决定了每一行的列数恰好等于其在第几行

六:输出九九乘法表。

输出格式如下所示:

1 * 1 = 1    
2 * 1 = 2    2 * 2 = 4    
3 * 1 = 3    3 * 2 = 6    3 * 3 = 9    
4 * 1 = 4    4 * 2 = 8    4 * 3 = 12    4 * 4 = 16    
5 * 1 = 5    5 * 2 = 10    5 * 3 = 15    5 * 4 = 20    5 * 5 = 25    
6 * 1 = 6    6 * 2 = 12    6 * 3 = 18    6 * 4 = 24    6 * 5 = 30    6 * 6 = 36    
7 * 1 = 7    7 * 2 = 14    7 * 3 = 21    7 * 4 = 28    7 * 5 = 35    7 * 6 = 42    7 * 7 = 49    
8 * 1 = 8    8 * 2 = 16    8 * 3 = 24    8 * 4 = 32    8 * 5 = 40    8 * 6 = 48    8 * 7 = 56    8 * 8 = 64    
9 * 1 = 9    9 * 2 = 18    9 * 3 = 27    9 * 4 = 36    9 * 5 = 45    9 * 6 = 54    9 * 7 = 63    9 * 8 = 72    9 * 9 = 81

代码:

<?phpfor($i = 1; $i < 10; $i++){for($j = 1; $j <= $i; $j++){$mul = $i * $j;echo "$i * $j = $mul&nbsp;&nbsp;&nbsp;&nbsp;";}echo "<br>";}
?>

循环其实不复杂

&nbsp;

  • 它属于html实体,其实就是一个空格
    我在上面代码中使用了四个空格,是为了把每一行的输出隔开四个空格,看的舒服些

提高:用表格输出九九乘法表。

这里要用到html、css的知识,有兴趣的可以看一看:

在这里插入图片描述

<style>
table{border-collapse: collapse;
}table caption{font-size: 2em;font-weight: bold;margin: 1em 0;
}td{border: 1px solid #999;text-align: center;padding: 20px;
}table tbody{color: #000;background-color: #fff;
}table tbody tr:nth-child(odd){background-color: #008c8c;
}table tbody tr:hover{background-color: #f40;
}
</style><?phpecho '<table>';echo '<caption>九九乘法表</caption>';echo '<body>';for($i = 1; $i < 10; $i++){echo '<tr>';for($j = 1; $j <= $i; $j++){$mul = $i * $j;echo '<td>';echo "$i * $j = $mul";echo '</td>';}echo '</tr>';}echo '</body>';echo '<table>';
?>

实验二 数组


了解php语言的数组,并操作它

一:定义一个数组$arr,键值与内容见下图
在这里插入图片描述

为该数组添加一个元素,使其键值与内容下图

在这里插入图片描述

用echo输出pink,blown
用print_r和var_dump函数输出这个数组

代码:

<?php$arr = array('a' => 'red', 'b' => 'blue', 'c' => 'pink', 'd' => 'yellow');$arr['f'] = 'blown';$arr[] = 'black';echo $arr['c'];echo '<br>';echo $arr['f'];echo '<br>';print_r($arr);echo '<br>';var_dump($arr);
?>

输出:

pink
blown
Array ( [a] => red [b] => blue [c] => pink [d] => yellow [f] => blown [0] => black )
array(6) { ["a"]=> string(3) "red" ["b"]=> string(4) "blue" ["c"]=> string(4) "pink" ["d"]=> string(6) "yellow" ["f"]=> string(5) "blown" [0]=> string(5) "black" }

数组:

  • 数组中的每个实体都包含两项:键和值
  • 键:可以是数字、字符(包括:数字和字符串的组合)
  • 值:可以是任意数据类型

创建一维数组:

一:

$arr[key] = value;
$arr[] = value;

二:

$arr = array('one' => 'php', 'two' => 'python');
$arr = array('c', 'java');

输出数组:

  • print_r()
    按一定键值和元素的顺序显示出该数组中所有元素
  • var_dump()
    可以输出(或对象)、元素数量以及每个字符串的长度

二:定义二维数组,存储下表中的数据,并输出

品牌库存销量
Volvo3320
BMW1715
Saab52
Land Rover1511

代码:

<?php$arr[0] = array('品牌', '库存', '销量');$arr[1] = array('volvo', 33, 20);$arr[2] = array('BMW', 17, 15);$arr[3] = array('saab', 5, 2);$arr[4] = array('Land rover', 15, 11);foreach($arr as $key => $value){foreach($value as $keys => $values){echo '&nbsp;&nbsp;';echo $values;echo '&nbsp;&nbsp;';}echo '<br>';}
?>

输出:

  品牌    库存    销量  volvo    33    20  BMW    17    15  saab    5    2  Land rover    15    11  

foreach(遍历数组的简单办法):

foreach(array_expression as $value)statementforeach(array_expression as $key => $value)statement

foreach语句将遍历数组array_expression,每次循环时,将当前数组中的值赋给$value(或者是$key$value),同时,数组指针向后移动,直到遍历结束。

实验三 PHP与Web交互


一:设计一个系统登录页面login.php,登录后跳转到另一个页面loginok.php显示登录信息。

先看这个知识点:

  • $_POST[]$_GET[]可以获取表单提交的数据

login.php

<form action="loginok.php" method="post"><div>用户名:<input type="text" name="user"></div><div>密码 :<input type="password" name="password"></div><div><input type="submit" name="submit" value="登录"></div>
</form>

loginok.php

<?phpif(isset($_POST['submit']) && $_POST['submit'] == '登录'){echo '用户名:'.$_POST['user'].'<br>';echo '密码  :'.$_POST['password'];}
?>

输入:
在这里插入图片描述
点击登录后:
在这里插入图片描述

二:设计一个php网页test1.php,用来进行投票。在另一个网页testok.php显示投票结果。

test1.php

<form action="testok.php" method="get"><div style="font-weight:bold;font-size:16px">当今最流行的web开发技术</div><input type="checkbox" name="zgh[]" value="PHP">PHP<br><input type="checkbox" name="zgh[]" value="ASP">ASP<br><input type="checkbox" name="zgh[]" value="JSP">JSP<br><input type="checkbox" name="zgh[]" value="JSP.NET">JSP.NET<br><input type="submit" name="submit" value="请投票">
</form>

testok.php

<?phpif(isset($_GET['submit']) && $_GET['submit'] == '请投票'){foreach($_GET['zgh'] as $value){echo $value.'<br>';}}
?>

选择
在这里插入图片描述

点击请投票后
在这里插入图片描述
三:设计一个注册页面reg.php,当点击提交时,跳转到另一个页面regok.php,显示用户的注册信息。

先看这个知识点:

int preg_match ( string $pattern , string $subject)
  • 用于执行一个正则表达式匹配
  • $pattern: 要搜索的模式,字符串形式。
  • $subject: 输入字符串。

reg.php

<div style="font-weight: bold;margin:20px 0">用户注册</div><form action="regok.php" method="GET"><div>用户名:<input type="text" name="user">(必填,3-15字符长度,支持汉字、字母、数字及_)</div><div>密码:<input type="password" name="password">(必填,不得少于6位)</div><div>重复密码:<input type="password" name="retry"></div><div>电子邮箱:<input type="text" name="mail">(必填)</div><input type="submit" value="提交注册" name="submit">
</form>

regok.php

<?phpif(isset($_GET['submit']) && $_GET['submit'] == '提交注册'){if(!preg_match("/^[\u4E00-\u9FA5A-Za-z0-9_]{3,15}$/", $_GET['user'])){echo '用户名格式错误!';}if(!preg_match("/^\w{6,}$/", $_GET['password'])){echo '密码格式错误!';}if($_GET['password'] != $_GET['retry']){echo '两次密码不匹配';}if(!preg_match("/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/",$_GET['mail'])){echo '邮箱格式不对!';}else{echo '注册成功';}}
?>

输入:
在这里插入图片描述
点击提交注册
在这里插入图片描述

实验四 文件上传与字符串方法


一:实现jpg格式的文件上传,检验文件的格式,如果是jpg格式的图片,则上传到image文件夹,不是,则弹出提示。

先看这几个知识点:

  • $_FILES['filename']
    是一个一维数组,包含所有上传文件的相关信息
  • $_FILES['filename']['name']
    上传文件的文件名
  • $_FILES['filename']['tmp_name']
    文件在临时目录中使用的文件名,因为文件在上传时,首先要将其以临时文件的身份保存在临时目录中
  • $_FILES['filename']['type']
    上传文件类型
  • $_FILES['filename']['size']
    上传文件大小,单位为字节
  • $_FILES['filename']['error']
    如果返回0,则说明上传文件成功

代码:

<form action="" enctype="multipart/form-data" method="POST">请选择你要上传的文件:<input type="file" name="isjpg"><input type="submit" name="submit" value="上传">
</form><?php
if (!empty($_FILES['isjpg']['name'])) {$type = substr($_FILES['isjpg']['name'], -3, 3);if ('jpg' == $type) {$path = "image/" . $_FILES['isjpg']['name'];if (move_uploaded_file($_FILES['isjpg']['tmp_name'], $path)) {echo '文件上传成功';}else{echo '文件无法上传到指定位置!';  }}else{echo '文件上传类型错误!';} 
}
?>

注意啊:判断文件类型时,不要使用$_FILES['filename']['type'],因为这坑爹玩意和系统有关系,有的系统中jpg文件的值是image/jpeg,有的系统中的值是image/pjpeg

最好使用截取字符串的方法,截取文件名后三位,来判断文件类型

substr(string str, int start[, int length])
  • str
    指定字符串对象
  • start
    用来指定开始截取字符串的位置
  • length
    可选项,指定截取字符串的个数(如果为负数,则表示截取到倒数第length个字符)
move_uploaded_file(string filename, string destination)

用于将文件上传到服务器的指定位置,若成功,则返回true。

  • filename,上传文件的临时文件名$_FILES['filename']['tmp_name']
  • destination,上传文件保存的新路径和名称

二:在下面这篇文章里,将用户输入的文字红色高亮显示。

大数据与人工智能之间存在着一种互惠关系:人工智能在很大程度上依赖于前者的成功,同时也帮助组织以以前繁琐或不可能的方式释放数据存储中的潜力。Gruber说,“如今,我们需要尽可能多的数据,这不仅是为了更好地洞察我们试图解决的业务问题,而且因为我们通过机器学习模型输入的数据越多,它们得到的结果就越好。这是一个良性循环。”

先看这个知识点:

  • $_POST[]$_GET[]可以获取表单提交的数据

代码:

<form action="" method="get"><input type="text" name="key"><input type="submit" name="submit" value="提交">
</form><?php
if (isset($_GET['key']) && ($_GET['submit'] == '提交')) {$content = "大数据与人工智能之间存在着一种互惠关系:人工智能在很大程度上依赖于前者的成功,同时也帮助组织以以前繁琐或不可能的方式释放数据存储中的潜力。Gruber说,“如今,我们需要尽可能多的数据,这不仅是为了更好地洞察我们试图解决的业务问题,而且因为我们通过机器学习模型输入的数据越多,它们得到的结果就越好。这是一个良性循环。”";$str = $_GET['key'];echo str_ireplace($str, "<font color='#f40'>".$str.'</font>', $content);
}
?>

输入:
在这里插入图片描述
点击提交之后:
在这里插入图片描述

str_ireplace(mixed search, mixed replace, mixed subject[, int &count])
  • 将所有在参数subject中出现的参数search,以参数replace替换
  • 参数&count表示替换字符串执行的次数

这篇关于PHP实验报告题目汇总(层次递进,全面丰富)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/189730

相关文章

全面解析HTML5中Checkbox标签

《全面解析HTML5中Checkbox标签》Checkbox是HTML5中非常重要的表单元素之一,通过合理使用其属性和样式自定义方法,可以为用户提供丰富多样的交互体验,这篇文章给大家介绍HTML5中C... 在html5中,Checkbox(复选框)是一种常用的表单元素,允许用户在一组选项中选择多个项目。本

一文全面详解Python变量作用域

《一文全面详解Python变量作用域》变量作用域是Python中非常重要的概念,它决定了在哪里可以访问变量,下面我将用通俗易懂的方式,结合代码示例和图表,带你全面了解Python变量作用域,需要的朋友... 目录一、什么是变量作用域?二、python的四种作用域作用域查找顺序图示三、各作用域详解1. 局部作

Linux实现线程同步的多种方式汇总

《Linux实现线程同步的多种方式汇总》本文详细介绍了Linux下线程同步的多种方法,包括互斥锁、自旋锁、信号量以及它们的使用示例,通过这些同步机制,可以解决线程安全问题,防止资源竞争导致的错误,示例... 目录什么是线程同步?一、互斥锁(单人洗手间规则)适用场景:特点:二、条件变量(咖啡厅取餐系统)工作流

Nacos注册中心和配置中心的底层原理全面解读

《Nacos注册中心和配置中心的底层原理全面解读》:本文主要介绍Nacos注册中心和配置中心的底层原理的全面解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录临时实例和永久实例为什么 Nacos 要将服务实例分为临时实例和永久实例?1.x 版本和2.x版本的区别

Python数据分析与可视化的全面指南(从数据清洗到图表呈现)

《Python数据分析与可视化的全面指南(从数据清洗到图表呈现)》Python是数据分析与可视化领域中最受欢迎的编程语言之一,凭借其丰富的库和工具,Python能够帮助我们快速处理、分析数据并生成高质... 目录一、数据采集与初步探索二、数据清洗的七种武器1. 缺失值处理策略2. 异常值检测与修正3. 数据

8种快速易用的Python Matplotlib数据可视化方法汇总(附源码)

《8种快速易用的PythonMatplotlib数据可视化方法汇总(附源码)》你是否曾经面对一堆复杂的数据,却不知道如何让它们变得直观易懂?别慌,Python的Matplotlib库是你数据可视化的... 目录引言1. 折线图(Line Plot)——趋势分析2. 柱状图(Bar Chart)——对比分析3

JAVA数组中五种常见排序方法整理汇总

《JAVA数组中五种常见排序方法整理汇总》本文给大家分享五种常用的Java数组排序方法整理,每种方法结合示例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录前言:法一:Arrays.sort()法二:冒泡排序法三:选择排序法四:反转排序法五:直接插入排序前言:几种常用的Java数组排序

防止SpringBoot程序崩溃的几种方式汇总

《防止SpringBoot程序崩溃的几种方式汇总》本文总结了8种防止SpringBoot程序崩溃的方法,包括全局异常处理、try-catch、断路器、资源限制、监控、优雅停机、健康检查和数据库连接池配... 目录1. 全局异常处理2. 使用 try-catch 捕获异常3. 使用断路器4. 设置最大内存和线

MySQL主从同步延迟问题的全面解决方案

《MySQL主从同步延迟问题的全面解决方案》MySQL主从同步延迟是分布式数据库系统中的常见问题,会导致从库读取到过期数据,影响业务一致性,下面我将深入分析延迟原因并提供多层次的解决方案,需要的朋友可... 目录一、同步延迟原因深度分析1.1 主从复制原理回顾1.2 延迟产生的关键环节二、实时监控与诊断方案

Android实现定时任务的几种方式汇总(附源码)

《Android实现定时任务的几种方式汇总(附源码)》在Android应用中,定时任务(ScheduledTask)的需求几乎无处不在:从定时刷新数据、定时备份、定时推送通知,到夜间静默下载、循环执行... 目录一、项目介绍1. 背景与意义二、相关基础知识与系统约束三、方案一:Handler.postDel