PHP相关方法SESSION/COOKIE
PHP方法
1. 字符串常用方法:
获取 |
substr(string,strart,len);
|
从start截取len位字符 |
strstr(string,str); |
截取str后面的字符 |
|
strrchr(string,str); |
从后面查找str,并截取后面的字符 |
|
替换 |
str_replace(search,replace,string); |
用replace替换search字符 |
计算 |
strlen( ) |
获取字符串长度 |
strpos(string,str,start); |
查找字符串str出现的位置 |
|
strrpos(string,str); |
从后面查找str出现的位置 |
2. 时间
需要配置时间 php.ini 中的 date.timezone = PRC
-
time( ) 获取1970-1-1至今的秒数
<?php echo date("Y-m-d H:i:s",time()),"<br>"; ?>
-
date("Y-m-d H:i",time());
显示格式为 2008-12-01 12:01
格式化时间戳
-
strtotime("2021-10-20");
通过字符串转换为时间戳
例子: // 如果在3分钟以内,返回:刚刚 // 如果在30天以内,返回:若干分钟前、若干小时前、若干天前,如:5分钟前 // 如果在30天以上,返回:日期字符,如:2017-01-01 function forDate($d){ // 计算分差(传入事件与当前时间分差) $dis = (time()-strtotime($d))/60;//分钟 // 小于3分钟就是刚刚 if($dis<=3){ return "刚刚"; }elseif($dis<60){ return (int)($dis)."分钟前"; }elseif($dis<24*60){ return (int)($dis/60)."小时前"; }elseif($dis<24*60*30){ return (int)($dis/60/24)."天前"; }else{ return $d; } } echo forDate("2021-10-20");
3. http全局数组
-
$_GET[ ]------获取所有get请求的参数
HTTP GET 方式不仅是用于表单数据发送,它是指更广泛的以实体的方式得到由请求 URL (浏览器地址)所指定资源的信息
//获取的GET参数 //q1 默认0 q2默认是q1+100 //产生随机一个 q1 到q2的整数 isset($_GET["q1"])?$q1=$_GET["q1"]:$q1=0; isset($_GET["q2"])?$q2=$_GET["q2"]:$q2=$q1+100; $num = rand($q1,$q2); echo "<br/>$num<br/>";
提示:
- GET 方式会把表单数据暴露在浏览器地址栏里,因此不宜发送敏感数据(如密码等),敏感信息发送请使用 POST 方式。
- GET 方式对发送的信息量有一定限制,如果发送较大的信息,请使用POST 方式。
- GET 方式访问的页面可以加入收藏夹而在以后可以直接访问,而 POST 方式访问的页面则不能。
-
$_POST[ ]------获取所有的post请求参数
//可以像访问普通数组一样方便的访问 $_POST 变量: <?php echo '您的称呼是:',$_POST["nickname"]; ?>
//模拟登陆案例$_POST <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <?php $list = array("沐沐"=>123,"贝贝"=>123,"点点"=>"456"); if(isset($_POST["user"])&&isset($_POST["pwd"])){ $user = $_POST["user"]; $pwd = $_POST["pwd"]; if(array_key_exists($user,$list)){ if($list[$user]==$pwd){ echo "<script>alert('登录成功!');</script>"; }else{ echo "<script>alert('用户名或密码错误')</script>"; } }else{ echo "<script>alert('用户名未注册')</script>"; } } ?> <h1>登录</h1> <form action="" method="POST"> 用户名: <input type="text" name="user"><br> 密 码: <input type="password" name="pwd"/><br>     <input type="submit" value="登录"> </form> </body> </html>
-
$_REQUEST[ ]------获取所有的请求
在 PHP 中还预定义了 $_REQUEST 变量,它包含了 $_POST 、$_GET 、和 $_COOKIE 。其访问方式同 $_POST 等:
<?php echo $_REQUEST["nickname"] //输出用户输入的称呼 echo $_REQUEST["id "]; ?>
4. jsonp方法
-
jsonp_encode()------数组转jsonp
PHP json_encode() 用于对变量进行 JSON 编码,该函数如果执行成功返回 JSON 数据,否则返回 FALSE
语法:
string json_encode ( $value );
实例 PHP 数组转换为 JSON 格式数据: <?php $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5); echo json_encode($arr); ?> //以上代码执行结果为: {"a":1,"b":2,"c":3,"d":4,"e":5}
-
json_decode()------字符串转数组
PHP json_decode() 函数用于对 JSON 格式的字符串进行解码,并转换为 PHP 变量。
语法:
mixed json_decode ($json_string [,$assoc = false [, $depth = 512 [, $options = 0 ]]]);
参数:
-
json_string : 待解码的 JSON 字符串,必须是 UTF-8 编码数据
-
assoc : 当该参数为 TRUE 时,将返回数组,FALSE 时返回对象。
-
depth : 整数类型的参数,它指定递归深度
-
options : 二进制掩码,目前只支持 JSON_BIGINT_AS_STRING
实例 解码 JSON 数据: <?php $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; var_dump(json_decode($json)); var_dump(json_decode($json, true)); ?> //以上代码执行结果为: object(stdClass)#1 (5) { ["a"] => int(1) ["b"] => int(2) ["c"] => int(3) ["d"] => int(4) ["e"] => int(5) } array(5) { ["a"] => int(1) ["b"] => int(2) ["c"] => int(3) ["d"] => int(4) ["e"] => int(5) }
5. header方法
header("Content-type:application/json");------返回 json格式
header("Content-type:text/html;charset=utf-8");------返回html格式指定编码
6. seesion方法
-
session是用来保持客户端与服务器端会话的
-
session的值存储在服务器
-
session是通过cookie来传递给客户端
案例: //当前用户浏览页面的次数 !isset($_SESSION["view"])?$_SESSION["view"]=1:$_SESSION["view"]=$_SESSION["view"]+1; echo "页面的浏览次数为",$_SESSION["view"],"<br>";
7. cookie
-
cookie是存储在客户端的数据,可以设置过期时间
-
服务器或者客户端都可以修改和设置cookie
-
每次http请求都会自动携带cookie
-
http响应也会携带cookie