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

代码:


    $a = 100;
    $b = 25;
    $add = $a + $b;
    $sub = $a - $b;
    $mul = $a * $b;
    $div = $a / $b;

    echo "a + b = $add 
"
; echo "a - b = $sub
"
; echo "a * b = $mul
"
; echo "a / b = $div"; ?>

几个知识点:

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

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

双引号和单引号的区别:

  • 它们都是用来定义字符串的
  • 如果字符串中有变量值:
    双引号:输出的是变量值
    单引号:输出的是字符串(将变量看作字符串输出)

    $a = 100;

    echo "a = $a 
"
;//a = 100 echo 'a = $a
'
;//a = $a ?>

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

输出格式如下所示:

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

代码:


    $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%

代码:


    $salary = 8000;
    $housing_loan = 3500;
    $consume = 1000;
    $pay = $housing_loan + $consume;
    $odd_salary = $salary - $pay;
    $ratio = $housing_loan / $salary * 100;

    echo "每月总支出:$pay 
"
; echo "剩余工资:$odd_salary
"
; echo "房贷占工资的比例:".$ratio."%
"
; ?>

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

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

字符串连接符:

  • 就是英文小数点.
  • 例如"房贷占工资的比例:".$ratio."%
    "

    这样看:"房贷占工资的比例:"拼接$ratio拼接"%
    "

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

输出格式如下所示:

200以内偶数的和是:10100

代码:


    $sum = 0;
    for($i = 2; $i <= 200; $i += 2){
        $sum += $i;
    }

    echo "200以内偶数的和是:$sum";
?>

赋值运算符:

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

本题考察的是循环哦

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

输出格式如下所示:

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

代码:


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

依旧是考察循环,其实双重循环也很好理解的,$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

代码:


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

循环其实不复杂

 

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

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

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

PHP实验报告题目汇总(层次递进,全面丰富)_第1张图片

<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>


    echo '';echo'';echo'';for($i=1;$i<10;$i++){echo'';for($j=1;$j<=$i;$j++){$mul=$i*$j;echo'';}echo'';}echo'';echo'
九九乘法表
'; echo "$i * $j = $mul"; echo '
';?>

实验二 数组


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

一:定义一个数组$arr,键值与内容见下图
PHP实验报告题目汇总(层次递进,全面丰富)_第2张图片

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

PHP实验报告题目汇总(层次递进,全面丰富)_第3张图片

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

代码:


    $arr = array('a' => 'red', 'b' => 'blue', 'c' => 'pink', 'd' => 'yellow');
    
    $arr['f'] = 'blown';
    $arr[] = 'black';

    echo $arr['c'];
    echo '
'
; echo $arr['f']; echo '
'
; print_r($arr); echo '
'
; 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()
    可以输出(或对象)、元素数量以及每个字符串的长度

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

品牌 库存 销量
Volvo 33 20
BMW 17 15
Saab 5 2
Land Rover 15 11

代码:


    $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 '  ';
            echo $values;
            echo '  ';
        }
        echo '
'
; } ?>

输出:

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

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

foreach(array_expression as $value)
	statement

foreach(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


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

输入:
PHP实验报告题目汇总(层次递进,全面丰富)_第4张图片
点击登录后:
在这里插入图片描述

二:设计一个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


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

选择
PHP实验报告题目汇总(层次递进,全面丰富)_第5张图片

点击请投票后
在这里插入图片描述
三:设计一个注册页面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


    if(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 '注册成功';
        }
    }
?>

输入:
PHP实验报告题目汇总(层次递进,全面丰富)_第6张图片
点击提交注册
在这里插入图片描述

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


一:实现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>


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>


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

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

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

你可能感兴趣的:(PHP)