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 ]]]);
参数:
- son_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