PHP(二)
字符串函数
- str_replace(查找的值,替换的值,执行替换操作的字符) 字符串替换
- trim(字符串); 去除字符串首尾处的空白字符
- explode(分割符,执行分割的字符串); 使用一个字符串分割另一个字符串
- implode(连接符,执行连接的数组); 将一个一维数组的值拼接为字符串
- substr( 字符串,起始索引,截取长度 ); 返回字符串的子串
- strchr(字符串,标识字符); 从左向右查找指定的字符,并返回该字符后全部字符
- strrchr(字符串,标识字符); 从右向左查找指定的字符,并返回该字符后全部字符串
include文件引入
介绍
不同的页面中有相同的代码部分,可以将其分离为单个文件。需要调用时,include 引入对应的文件即可调用。提高代码的复用率。
语法
include | include_once "文件的路径"
include 与 include_once区别
-
include 可以重复引入文件
-
include_once 只引入一次,防止多次引入文件
页面动态渲染
-
PHP本身支持与HTML混编
-
混编的文件后缀必须为 .php, Apache 才会调用 PHP 解析
-
PHP与HTML混编时,服务器中的 PHP 引擎 只会执行php标签内部的PHP代码,非PHP的代码(PHP标签外部的内容)直接忽略,最后会将PHP的执行结果和非PHP代码 一起返回给浏览器,由浏览器进行解析
-
<?php header('content-type:text/html;charset=utf-8'); echo 2+3; // php的引擎 只会执行php代码块中代码,代码块外面的代码会被忽略 // 最后 服务器会将php执行的结果 和代码块外面的内容一起返回给 浏览器, // 由浏览器进行解析 ?> <a href="http://www.baidu.com">百度一下</a>
二维数组
数组中的每一个元素,又是一个数组
//二维数组的形式
$arr=[
[2,3,4,5,6],
[2,3,4,5,6],
[2,3,4,5,6],
[2,3,4,5,6]
];
//二维关联数组
$info=[
[
"name"=>"zs",
"age"=>18,
"sex"=>"男"
],
[
"name"=>"ls",
"age"=>18,
"sex"=>"女"
],
[
"name"=>"ww",
"age"=>19,
"sex"=>"男"
]
]
PHP数据读写到文件(数据持久化)
程序运行过程中,数据存储在内存中的,程序结束, 数据会销毁
如果希望可以永久存储某些数据,可以将数据存储在硬盘上(存储在文件中)
将数据由 内存 存储到硬盘的过程,称为数据持久化;
- file_get_contents(path) 根据路径读取文件内容, 得到一个字符串
- file_put_contents(path,$str) 将一个字符串写入到一个文件中。
- json_encode($data); 将PHP变量转成JSON格式字符串。
- json_decode($str,true); 将 JSON 字符串, 转换为 PHP 数组。
表单处理
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ts0Z9ddl-1581677824656)(img/form.png)]
表单(form):表单用于收集用户输入信息,并将数据提交给服务器。是一种常见的与服务端数据交互的一种方式
//1. action: 指定表单的提交地址
//2. method: 指定表单的提交方式,get/post,默认get
//3. input的数据想要提交到后台,必须指定name属性,后台通过name属性获取值
//4. 想要提交表单,不能使用input:button 必须使用input:submit
php获取表单数据
// $_GET 是 PHP 系统提供的一个超全局变量,是一个数组,里面存放了表单通过get方式提交的数据。
// $_POST 是 PHP 系统提供的一个超全局变量,是一个数组,里面存放了表单通过post方式提交的数据。
get与post的区别
//1. get方式
//1.1 数据会拼接在url地址的后面?username=pp&password=123456
//1.2 地址栏有长度限制,因此get方式提交数据大小不会超过4k
//2. post方式
//2.1 数据不会在url中显示,相比get方式,post更安全
//2.2 提交的数据没有大小限制, 可用于文件上传
文件上传
html要求
1. 文件上传的提交方式必须是post方式
2. 需要给form指定enctype="multipart/form-data"
3. 指定name属性,后台才能获取到
php相关
-
文件上传时,通过
$_FILES
才能获取到,这是一个二维数组。Array ( [photo] => Array ( [name] => 001.jpg // 文件名字 [type] => image/jpeg // 文件类型 [tmp_name] => C:\Users\Jepson\AppData\Local\Temp\phpF2A0.tmp // 上传图片保存的位置 [error] => 0 // 上传错误码, 错误码为 0 表示没有错误 [size] => 6000 // 文件大小, 单位字节, 大小 6kb 左右 ) )
-
上传文件时,文件会临时保存在服务器上,如果文件最终没有保存,那么临时文件会被删除,保证服务器安全。
-
sleep(10)
可以让代码延迟10秒钟才执行。 -
move_uploaded_file($path, $newPath);
可以保存临时图片
// 保存图片的完整代码
// 思路:
// 1. 在文件上传成功的情况下, 进行图片的保存 error === 0
// 2. 获取临时文件路径
// 3. 随机生成新的文件名, 注意文件中后缀名是不能改变的
// 4. 根据新的文件名, 转移临时文件
$file = $_FILES['photo'];
// 判断上传是否成功
if ( $file['error'] == 0 ) { // 上传成功
// 1. 获取临时文件路径
$ftemp = $file['tmp_name'];
// 2. 随机生成新的文件名, 后缀不能随便起, 要获取一下
$name = $file['name'];
$ext = strrchr($name, '.');
// 为了防止重复, 生成随机的文件名以当前时间秒数+随机数组成
$newName = time().rand(10000,99990).$ext;
// 3. 进行转存
move_uploaded_file($ftemp, "./upload/$newName");
}
表单标签的使用
常见的输入类型:文本域(type=text)、单选按钮(type=radio)、多选按钮(复选项 type=checkbox)、下拉菜单(select>option)
单选按钮 radio
input标记的type =radio,单选按钮。
- 注意通过 name 属性进行分组
- 必须设置 value 值, value 值会被提交到服务器中
- 通过 checked 进行默认选中
html结构
<form action="01-radio.php" method="get">
<input type="radio" name="sex" value="male"> 男
<input type="radio" checked name="sex" value="female"> 女
<input type="radio" name="sex" value="unknown"> 未知
<input type="submit" value="登陆">
</form>
复选框 checkbox
input的type =checkbox,可以同时选择多个选项。
- name命名形式必须为:name[],最终数据才能以数组的格式,将各个选项的值同时提交,否则只能提交最后一个勾选的属性值。不同的选项值,以数组元素的形式提交。
html结构
<form action="02-checkbox.php" method="get">
爱好:
<input type="checkbox" name="hobby[]" value="eat"> 吃饭
<input type="checkbox" name="hobby[]" value="sleep"> 睡觉
<input type="checkbox" name="hobby[]" value="doudou"> 打豆豆
<input type="submit" value="登陆">
</form>
下拉列表
select >option 实现的是下拉菜单。
- name属性必须设置, 设置给 select。
- value值为必须设置, 设置给 option。
- 通过给 option 加 selected 设置默认选中项
html结构如下:
<form action="./03-select.php" method="get">
城市:
<select name="city">
<option value="1">上海市</option>
<option value="2" selected >北京市</option>
<option value="3">天津市</option>
<option value="4">西红柿</option>
</select>
<input type="submit" value="登录">
</form>