当前位置: 首页 > news >正文

web后端语言下篇

#作者:允砸儿

#日期:乙巳青蛇年  三月廿一

笔者今天将web后端语言PHP完结一下,后面还会写一个关于python的番外。

PHP函数

PHP函数它和笔者前面写的js函数有些许类似,都是封装的概念。将实现某一功能的代码块封装到一个结构中,实现代码复用。只要系统在内容中能够找到对应的函数,就可以执行。(函数的调用可以在函数定义之前)

1、有内置函数大约1000种

2、自定义的函数:声明+调用(形参和实参)

函数的定义

function函数名(参数){

#函数体

}

函数的使用

函数名(参数)

PHP函数准则:

函数的名称应该提示出它的功能。函数名称以字母或下划线开头(不能以数字开头)。

比如:

function abc(){
    echo 'nihao';
}
abc();

PHP表单操作

表单是一个包含表单元素的区域。表单的作用是搜集不同类型的用户输入,然后将用户信息提交给服务器。在结合前端和后端的一些东西,判断用户对不对。

#注意;#不是谁想用就想用的,需要后端来核实,验证你前端输入过来的东西对不对。

它以数组方式接收,以数组方式处理,数组里面有很多元素。

PHPweb操作

用户提交数据通常是使用表单进行提交,也可以使用网址中的参数传递数据,这些数据通过HTTP请求的方式发送,使web服务器获取。

PHP提供了预定义的超全局变量,用来获取HTTP请求信息,这些变量的数据类型均为数组。

笔者举实例演示一下:#在这里笔者告诉朋友们一个技巧在PHP表单中用英文的!可以快速形成HTML语言。

接下来笔者用form做表单,PHP用$_post去接收.

1、接收数据,处理数据,返回结果

笔者网页演示一下;

2、判断用户是否点击按钮

笔者是用的if语句来判断,这里不用拘泥于一种

在这里面isset用来检查变量是否被设置为非空,变量是否被初始化

if (isset($_POST['submit']))

3、用三元运算符来判断user、password是否被拿值

$user = isset($_POST['user']) ? $_POST['user'] : null; 

$password = isset($_POST['password']) ?$_POST['password'] : null;

4、 判断用户,密码是否正确

用函数function login把前几个组合在一起

网页演示:

PHP文件上传

PHP文件上传是web开发中常见的功能之一,它允许用户通过web表单将文件(如图片、文档、视频等)上传到服务器。

文件上传的基本路径

客户电脑                                                                           服务器电脑

文件夹保存本地图片      第一次请求:文件上传表单文件》

                                      《第一次响应:提供文件上传表单

浏览器内容:

1、浏览器显示表单       第二次请求携带文件            操作系统保留            1、储存在临时文件

2、用户选择本地文件                                                                                  2、php作为后端判断

3、用户点击上传           第二次响应告知结果                                            3、移动文件到指定目录

接下来笔者带大家了解一下文件上传需要的一些函数和数组的含义

1、在form表单标签里面我们需要一个新的属性enctype="multipart/form-data">

主要规范表单数据的编码方式。

2、在HTML语句中加入file

文件上传:<input type="file" name="upload"><br>

3、了解数组的含义

(1)Array ( [user] => [password] => [submit] => 提交 )这是一维数组

(2)Array ( [upload] => Array ( [name] => 颜色判断结果.png [type] => image/png [tmp_name] => C:\Users\17267\AppData\Local\Temp\php9778.tmp [error] => 0 [size] => 2831 ) )这是二维数组。

name:文件名字。type:文件类型。tmp_name:临时路径。error:错误代码,0代表成功。

size:文件大小

4、获取上传文件后缀名

$ext=substr(strrchr($name,'.'),1);
#通过函数结合拿到后缀名,函数可以结合,拿到字符串的一个属性。

5、生成一个随机文件名

echo rand().'.'.$ext;

用$file_name来封装rand

6、存储临时文件信息

用if语句创造一个文件夹,把权限提升到最高,在用一个函数去声明。我们将创造出的文件夹与随机文件名封装到一个函数中。最后趁着临时文件在的时候保存下来。

网页演示:

按照笔者思路来写,一套下来文件成功存储在tex1中。php文件上传很重要网安会在这里面寻找漏洞。

PHP面向对象

它是一种编程思维,面向对象是一种以对象(object)为中心的编程思想。面向对象编程更注重对问题的抽象和封装,通过将问题分解为一些列相互协作的对象来实现程序的功能。

php类和对象

类是抽象的概念,仅仅是模板。用来描述具有相同属性和方法的对象的集合。比如:人类。

对象是类的实例,是某一个具体的事物。比如:对象是实际的人张三李四王五。

用笔者老师教的一个实例向朋友们去解释这个事:

首先找一个温柔的女朋友

class类

1、找大学

2、浙江大学

3、浙江大学女性

4、浙江大学女性温柔的

对象、具体

5、new  类

6、浙江大学女性温柔的----英语老师

接下来笔者去创造一个对象:

他的名字是long简单的做一段自我介绍:

网页演示:

PHP魔术方法

定义:PHP魔术方法(Magic Methods)是一类特殊的方法,它们在PHP中具有特定的命名和功能,能够在特定情况下自动被调用。

命名规则:魔术方法通常以两个下划线( —_)开头,后跟方法名称,如_construct()、_destruct()等。

与普通方法的区别:与普通方法不同,魔术方法不需要显式调用,而是由PHP解释器在特定时机自动触发。

魔术方法有很多笔者在这里只介绍4种方法:

第一种魔术方法:

构造方法:

construct()是一个特殊的方法,当创建新对象时,该方法会自动被调用,用于初始化对象的状态或执行其他必要的操作。参数列表 construct()方法可以接受任意数量的参数,这些参数用于在创建对象时传递初始化数据。

使用示例:

在类中定义construct()方法,并在创建对象时传递参数来初始化对象的状态。#注意事项如果类中定义了construct()方法,则必须在创建对象时提供所需的参数,否则会导致错误。

第二种魔术方法:

析构方法:

定义与用途destruct()是另一个特殊的方法,当对象不再被引用或脚本执行结束时,该方法会自动被调用,用于执行清理操作,如释放资源、关闭数据库连接等。 参数列表 destruct()方法不接受任何参数。

使用实例:

在类中定义 destruct()方法,并在其中执行必要的清理操作。

在写后两种魔术方法的时候,笔者简单解释下什么是序列化,反序列化。反序列化就是将一个特别 大的高的东西切成小块运输。具体来说就是数组是大的东西,把它切成字符串小的东西。

第三种魔术方法:

__sleep()方法:

1,触发时机:当对象被序列化时自动调用。
2,功能描述:该方法可以清理对象,并返回一个包含所有应被序列化的属性名称的数组。如果该方法未返回任何内容,则 NULL 被序列化并产生一个 E WARNING级别的错误。
3,参数列表:此方法不接受任何参数。
4,返回值:返回一个包含所有需要被序列化的属性名称的数组。

使用实例:

  public function __sleep(){echo '你是不是在外面偷偷使用序列化函数';return array('name');

}

第四种魔术方法:

_wakeup方法:

1、触发时机:当反序列化一个对象时自动调用。
2、功能描述:该方法可以重新建立数据库连接,或执行其它初始化操作。它不需要任何参数,也没有任何返回值。
3、如果在反序列化过程中,__wakeup()方法的执行抛出了一个异常,那么反序列化操作会失败,并抛出该异常。

function __wakeup(){echo '你是不是在外面偷偷使用反序列化函数吗?unserialize';
}

php后端内容已经完成了,内容有点多。最后希望大家可以一起进步,把知识学给自己,让自己变的更强。

相关文章:

  • 热蛋白质组分析技术(TPP)在前列腺癌治疗研究中的应用
  • 空调制冷量和功率有什么关系?
  • vue3 nprogress 使用
  • 动态规划入门:4种背包问题大纲
  • 拆机装机,通电主板亮灯风扇不转无法开机解决办法
  • 数据驱动、精准协同:高端装备制造业三位一体生产管控体系构建
  • POSIX 信号量(Semaphore)
  • 深入解析 Python 中的装饰器 —— 从基础到实战
  • 第六章 进阶04 尊重
  • 【Contiki】Contiki process概述
  • oasys 打开慢的问题解决
  • 2025年03月中国电子学会青少年软件编程(Python)等级考试试卷(四级)真题
  • Spring Boot 3 + SpringDoc:打造接口文档
  • FPGA学习——DE2-115开发板上设计波形发生器
  • 软件项目验收报告模板
  • 算法备案的审核标准是什么?
  • 全国青少年信息素养大赛 C++算法创意实践挑战赛初赛 集训模拟试卷《七》及详细答案解析
  • chkconfig指令
  • Windows程序包管理器WinGet实战
  • HarmonyOS 基础语法概述 UI范式
  • 闲置书换蔬菜,浙江嘉善启动全民阅读系列活动
  • 五一假期出行预订进入高潮:酒店搜索热度翻倍,“请4休11”拼假带动长线游
  • 大理州工业投资(集团)有限公司党委副书记、副总经理赵云接受审查调查
  • 对话地铁读书人|来自大学教授的科普:读书日也是版权日
  • 上海召开全市加强社会治安综合治理中心规范化建设工作推进会
  • 不降息就走人?特朗普试图开先例罢免美联储主席,有无胜算