php知识点总结2
目录
- 字符串
- 时间与日期
- php函数
- http全局数组
- jsonp方法
- header方法
- session
- cookie
- 其他-isset()
字符串
字符串获取
substr(string,start,len):从字符串中获取其中的一部分
$str="我爱我.的.祖国.png";
$end=strrchr($str,".");
$part=substr($end,1);
echo $part; //png
strstr(string,str):截取str后面的字符
strrchr(string,str):从后面查找str并截取后面的字符
// 倒序查找 . 并返回.及后面的数据
$end=strrchr($str,".");
echo $end; //.png
mb_substr(字符串,start,length,“utf-8”):从start截取length长度的字符串
$str="说书唱戏劝人方,三条大路走中央。善恶到头终有报,人间正道是沧桑。";
// 中文一个是3个字符
$sub=mb_substr($str,0,12,"utf-8");
echo $sub,"<br>"; //说书唱戏劝人方,三条大路
字符串替换
str_replace(search,replace,string):将字符串string中的search替换为replace
$str1="我爱我的祖国,我的祖国是中国";
$str2=str_replace("祖国","国家",$str1);
echo $str2,"<br>"; //我爱我的国家,我的国家是中国
字符串计算
strlen(string):取得字符串的长度(中文一个字是3个字符)
strpos(string,str,start): 函数用于定位字符串第一次出现的位置,返回整型。
strrpos():定位字符串最后一次出现的位置
时间与日期
php时间戳
UNIX 时间戳(timestamp)是 PHP 中关于时间日期一个很重要的概念,它表示从 1970年1月1日 00:00:00 到当前时间的秒数之和。
time():来取得服务器当前时间的时间戳。
echo time(); //类似于1634901872
格式化时间
date(“Y-m-d H:i,time()”): 函数用于格式化时间,返回一个字符串。
echo date("Y-m-d H:i:s",time()),"<br>";
//获取当前时间 格式为2021-10-22 19:26:47
strtotime(“2021-10-20”):字符串转时间戳
//计算时间差
$d1=strtotime("2021-10-20"); //1634659200
$d2=strtotime("2021-10-24");
echo $d1,"---",$d2,"<br>";
echo ($d2-$d1)/3600; //相差96小时
格式化方式说明: 格式化方式 | 说明 |
---|---|
Y | 4位数字年,y为2位数字,如99即1999年 |
m | 数字月份,前面有前导0,如01。n 为无前导0数字月份 |
F | 月份,完整的文本格式,例如 January 或者 March |
M | 三个字母缩写表示的月份,例如 Jan 或者 Mar |
d | 月份中的第几天,前面有前导0,如03。j 为无前导0的天数 |
w | 星期中的第几天,以数字表示,0表示星期天 |
z | 年份中的第几天,范围0-366 |
W | 年份中的第几周,如第32周 |
H | 24小时格式,有前导0,h为12小时格式 |
G | 24小时格式,无前导0,g为对应12小时格式 |
i | 分钟格式,有前导0 |
s | 秒格式,有前导0 |
A | 大写上下午,如AM,a为小写 |
php函数
PHP 的函数分为用户自定义函数和系统内置函数。内置函数可以直接使用,用户自定义函数需要使用关键字 function 来定义。
用户自定义函数
语法解读:
1.使用 function 关键字定义一个函数
2.function 后面紧跟函数名,函数名字以字母或者下划线开始,命名应该提示其功能
3.函数名字后面是( ),里面是函数的参数,参数之间以“,”号分隔,但参数不是必须的
4.括弧()后面跟着{ },内部是该函数要实现的功能语句
function print_string()
{
echo "你好!";
}
print_string();//执行该函数
系统内置函数
常用的有字符串函数、数组函数、数据库函数、时间/日期函数、文件函数、图像函数、正则函数、URL函数等
http全局数组
- $_GET[ ] 获取所有get请求的参数
- $_POST[ ] 获取所有的post请求参数
- $_REQUEST[ ] 获取所有的请求
用法相似,以get为例:
<-- 连接同级下的do.php -->
<form action="./do.php" method="get">
用户名:<input type="text" name="uname"><br>
年龄:<input type="text" name="age"><br>
<input type="submit" value="提交">
</form>
// 该php文件名为do.php
// html中input的name="uname"
echo $_GET["uname"],"是个有趣的人<br>";
echo $_GET["age"],"是个好年纪!<br>";
jsonp方法
- json_encode( ) 数组转jsonp
- jsonp_decode( ) 字符串转数组
// 把数组转化为json的字符串
$re=array("status"=>1,"msg"=>"");
echo json_encode($re);
header方法
在php文件头部添加
- 返回json格式
header("Content-type: application/json");
- 返回html格式指定编码
header("Content-type: text/html; charset=utf-8");
session
在计算机上操作某个应用程序时,您打开它,做些更改,然后关闭它。这很像一次对话(Session)。计算机知道您是谁。它清楚您在何时打开和关闭应用程序。然而,在因特网上问题出现了:由于 HTTP 地址无法保持状态,Web 服务器并不知道您是谁以及您做了什么,session 解决了这个问题。
一旦开启了 session 会话,便可以在网站的任何页面使用(保持)这个会话,从而让访问者与网站之间建立了一种“对话”机制。
- sesson是用来保持客户端与服务器端会话的
- session的值存储在服务器
- session是通过cookie来传递给客户端
- 只有浏览器窗口关闭时才会删除会话信息
创建session
session_start();
// 开启session 放在php文件第一行,注释也不能写在其前面
读取session
session_start(); //开启sesson
// 告诉浏览器返回的是html
header("Content-type: text/html; charset=utf-8");
if(isset($_SESSION["views"])){
// 若存在views 值+1
$_SESSION["views"]=$_SESSION["views"]+1;
}else{
// 不存在 值为1
$_SESSION["views"]=1;
}
// 输出view的值
echo "累计浏览量:",$_SESSION["views"];
销毁session
session_start();
if(isset($_SESSION['views'])){
unset($_SESSION['views']);
}
//或者通过调用 session_destroy() 函数彻底销毁 session
session_destroy();
cookie
- 存储在客户端的数据,可以设置过期时间
- 服务器或者客户端都可以修改设置cookie
- 每次http请求都会携带cookie http响应也会携带cookie
- 在浏览器 服务器间来回传递
- 存储大小<4k
- 在设置的过期时间前一直有效
其他-isset()
isset():检查变量是否存在,被检测的变量存在则返回 TRUE,否则返回 FALSE。
- isset() 只能用于检测变量,传递任何其它参数都将造成解析错误。
- isset() 是一个语言结构而非函数,因此它无法被变量函数调用。
- 只要赋值就返回TRUE,包括下面几种情况:
$var = "";
$var = array();
$var = 0;
$var = false;