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

相关文章

全面掌握 SQL 中的 DATEDIFF函数及用法最佳实践

《全面掌握SQL中的DATEDIFF函数及用法最佳实践》本文解析DATEDIFF在不同数据库中的差异,强调其边界计算原理,探讨应用场景及陷阱,推荐根据需求选择TIMESTAMPDIFF或inte... 目录1. 核心概念:DATEDIFF 究竟在计算什么?2. 主流数据库中的 DATEDIFF 实现2.1

Java操作Word文档的全面指南

《Java操作Word文档的全面指南》在Java开发中,操作Word文档是常见的业务需求,广泛应用于合同生成、报表输出、通知发布、法律文书生成、病历模板填写等场景,本文将全面介绍Java操作Word文... 目录简介段落页头与页脚页码表格图片批注文本框目录图表简介Word编程最重要的类是org.apach

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

全面解析MySQL索引长度限制问题与解决方案

《全面解析MySQL索引长度限制问题与解决方案》MySQL对索引长度设限是为了保持高效的数据检索性能,这个限制不是MySQL的缺陷,而是数据库设计中的权衡结果,下面我们就来看看如何解决这一问题吧... 目录引言:为什么会有索引键长度问题?一、问题根源深度解析mysql索引长度限制原理实际场景示例二、五大解决

MySQL追踪数据库表更新操作来源的全面指南

《MySQL追踪数据库表更新操作来源的全面指南》本文将以一个具体问题为例,如何监测哪个IP来源对数据库表statistics_test进行了UPDATE操作,文内探讨了多种方法,并提供了详细的代码... 目录引言1. 为什么需要监控数据库更新操作2. 方法1:启用数据库审计日志(1)mysql/mariad

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文

Python循环结构全面解析

《Python循环结构全面解析》循环中的代码会执行特定的次数,或者是执行到特定条件成立时结束循环,或者是针对某一集合中的所有项目都执行一次,这篇文章给大家介绍Python循环结构解析,感兴趣的朋友跟随... 目录for-in循环while循环循环控制语句break语句continue语句else子句嵌套的循

Python中图片与PDF识别文本(OCR)的全面指南

《Python中图片与PDF识别文本(OCR)的全面指南》在数据爆炸时代,80%的企业数据以非结构化形式存在,其中PDF和图像是最主要的载体,本文将深入探索Python中OCR技术如何将这些数字纸张转... 目录一、OCR技术核心原理二、python图像识别四大工具库1. Pytesseract - 经典O

全面解析HTML5中Checkbox标签

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

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

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