前面经过一周的PHP学习,这是第二周
简单表单
语法
1 | <form action="提交表单的地址" method="提交表单的方式"> //GET POST REQUEST |
可以用超全局变量$_POST[]
,$_GET[]
,$_REQUEST
获取提交的表单数据
文件上传表单
1 | <form action="upload_file.php" method="post" enctype="multipart/form-data"> |
和简单表单类似,将type属性改成file表示上传的是一个文件.
enctype表示提交表单要使用哪种内容类型,文件用enctype="multipart/form-data"
.
方式一般使用post类型。
上传的文件保存在超全局变量$_FILES
中
如在upload_file.php中使用print_r($_FILES)
,可以打印查看文件的信息
date格式化日期
date("format")
format可以是 d(天),m(月),Y(年),中间可以插入其他字符
例如 echo date(Y/m/d)
结果2023/3/18
包含文件
include '文件名';
require '文件名';
include_once '文件名';
require_once '文件名';
区别找不到文件时require生成致命错误,include产生一个警告,继续执行。
一个文件包含两次相同的文件会报错,加上_once就只会扫描一次,不会报错
文件
打开文件
$file=fopen("文件名","打开模式");
关闭文件
fcloes($file);
//流程,打开文件,执行一些代码,关闭文件检测文件末尾(EOF)
feof($file);
在循环遍历未知长度的数据时,feof() 函数很有用。逐行读取文件
fgets($file);
在调用该函数之后,文件指针会移动到下一行.逐字符读取文件
fgetc($file)
在调用该函数之后,文件指针会移动到下一个字符。
完整演示一遍操作文件
1 |
|
Cookie
cookie常用于识别用户,是服务器留在用户计算机上的小文件,计算机请求页面时,计算机会发送cookie。
- 创建cookie
<?php setcookie(name,value,expire,path,domain); ?>
//必须位于标签之前
例如setcookie("user", "miao", time()+3600)
//名user,值miao,3600秒后过期
也可以$a=time()+60*60*24*30; setcookie("user", "miao", $a)
//60秒60分24小时*30天 - 取回cookie的值
可以用超全局变量$_COOKIE[]
取回cookie1
2
3
4
echo $_COOKIE["user"]; // 输出user的cookie 值
print_r($_COOKIE); // 查看所有 cookie - 删除cookie
把time()
改成过去的时间
例如setcookie("user", "miao", time()-360);
- 检测是否设置了cookie
使用isset($_COOKIE[])
- 编码方式
在发送cookie时,cookie的值会自动进行URL编码,在取回时进行自动解码。为防止URL编码,请使用setrawcookie()
取而代之
Session
session变量是用于储存用户会话信息(用户数据),更改用户会话信息的设置。工作机制:为每个访客创建一个唯一的id(UID),并基于这个UID来存储变量。UID存储在cookie中,或者通过URL进行传导
- 启动会话
session_start()
///函数必须位于标签之前 - 储存session变量
使用$_SESSION[]
超级变量,并进行赋值
例如
可以将用户的浏览量设置成$_SESSION['views']
,每次访问后使$_SESSION['views']+=1
或是给用户添加admin权限等
如果用户成功登陆的话,储存一个登陆成功的凭证的session$_SESSION[admin]=ture
- 销毁Session
如果希望删除某些session数据,可以使用unset()
或session_destroy()
函数
unset() 函数用于释放指定的session变量:例如$_SESSION['views']
session_destroy() 函数彻底销毁重置session - 检测是否设置了session
使用isset($_SESSION[])
序列化与反序列化
JSON定义 :一种轻量级的数据交换语言,以文本字符串为基础
- {} 双括号表示对象
- [] 中括号表示数组
- “” 双引号内是属性或值
- : 冒号表示后者是前者的值(这个值可以是字符串、数字、也可以是另一个数组或对象)
- ,逗号用来分隔属性或者对象
- 例如
{"a":16,"b":18,"c":20}
PHP JSON
json_encode($value,参数)
// 对变量(对象也可以)进行json编码JSON_UNESCAPED_UNICODE
参数选项,如果我们不希望中文被编码,可以添加该参数。json_decode(json字符串)
对json格式字符解码,转化成php变量
serializeserialize()
序列化是将变量(或者对象)转换为可保存或传输的字符串的过程
unserializeunserialize()
反序列化就是在适当的时候把这个字符串再转化成原来的变量使用