PHP是超文本预处理器 本地访问localhost/127.0.0.1 属于模块化 开启在php.ini
# 数据类型
```
标量4个
整形(int integer整数)
1 12 43 -83
浮点型(float)
4.25 -0.12
布尔型
bool boolean
真和假 true && false
字符串(string)
在程序里面你用''或""引起来的东西
混合类型(复合类型)
数组(array)
对象(object)
特殊类型
空(null)
资源(resource)
资源就是咱们电脑上的图片avi rvmb mp3 网络请求都是资源
```
# 数据类型转换
```
$num = 123.0; echo gettype($num); 解析得到double gettype()返回数据类型
例:$str = '18.abc'; echo intval($str); 解析18
floatval();浮点型 strval();字符串 boolval();布尔型
```
# 常量定义
```
define('ABC','abd'); 调用echo ABC; 常量不能重新定义
__FILE__ 获取当前文件的路径
__LINE__ 获取当前代码第几行
PHP_VERSION 获取当前PHP版本号
__FUNCTION__ 获取函数名 M_PI 圆周率
__MHTHOD__//获取当前成员方法名
__NAMESPACE__//获取当前命名控件名字
__TRAIT__//获取当前TRAIT名字(多继承)
__CLASS__//获取当前类名)
```
# 运算符
```
+ - * / 求余%(求模) x++自增 x--自减 > < >= <= == ===(是包括变量值与类型完全相等)
x+=1(x=x+1) x-=1(x=x-1) *= /= %= .=(字符串自身+'abc'赋给原来的变量)
逻辑运算符 &&并且 ||或 !求反
```
# 流程控制
```
if-else/switch/
$test = 4;
switch($test){
case 1:
echo 1;
break;
default:
echo '默认值';
break;
}
```
# 循环
```
for/while/do-while/
break终止本循环体
continue终止此次循环,重新进行下次循环
for($i=0;$i<3;i++){
echo $i.'<br />';
}
----------------------------------------------
$i =0;
while($i<3){
echo $i.'<br />'; $i++;
}
----------------------------------------------
$i =0;
do {
echo $i.'<br />'; $i++;
}while($i<3);
----------------------------------------------
[99乘法表]
echo '<table width="800" height="200" border="1">';
for($i=1;$i<=9;$i++) {
echo '<tr>';
for ($j=1;$j<=$i;$j++){
echo '<td>'.$j.'*'.$i.'='.$j*$i.'</td>';
}
echo '</tr>';
}
echo '</table>';
```
# 函数
```
内置函数is_string() is_array() is_null() ...
-----------------------------------
自定义函数
function name(){
echo '我是函数调用,无参无返回值';
}
name(); //调用
-----------------------------------
function name($name='有参数无返回值'){
echo $name;
}
name(); //调用
-----------------------------------
function name($name='有参数有返回值'){
echo $name;
return 1; //多个返回值用数组 return返回值想要输出的话比如用echo name();
}
name('我是赋值有参有返回值'); //调用
函数作用域 内部变量/外局变量/超全局变量($_GET/$_POST/$_FILE/$_SESSION/$GLOBALS)
[静态变量 重要] //静态变量只会初始化一次 在运行的时候它会记录上一次的值 static变量不会销毁
function total(){
static $num = 2;
$num*=2;
echo $num;
}
total(); //4
total(); //8
total(); //16
function test(...$arr){
var_dump($arr); //数组返回值
}
test(1,2,3,4,5);
function test($a,$b,$c){
var_dump($a,$b,$c);
}
$arr = [1,2,3];
test(...$arr); //...$arr 把数组里面的值 一一赋给形参
匿名函数 没有名字 使用的话赋给一个变量,调用的时候变量加()
$func = function(){} $func();
```
# 常用函数
```
字符串函数/大小写转换/空白处理/查找定位/比较/顺序/转换....
```
# 文件包含
```
include('mysql/2.php'); //如何没找到该文件 报警告错误 继续执行后面代码
require('mysql/2.php'); //如何没找到该文件 报语法错误 停止执行后面代码
```
# 数组
```
索引数组
$arr = [1,2,3,4,5];
$arr = array(1,2,3,4,5);
$arr = ['3'=>'a','b','c','d']; var_dump($arr); //指定下标会从数组下标3开始 3456
关联数组
$arr = [
'java' => '大数据',
'html' => '页面',
'php' => 'mysql',
'js' => '效果'
]; var_dump($arr);
二维数组(类推多维数组)
$arr = [
'php' => [
'html',
'js',
'css'
],
'java',
'javascript'
]; var_dump($arr);
```
# 数组的增删改查
```
$arr = ['a','b','c','d']; echo $arr[0]; //查 解析a
$arr[4] = 'e'; //增 新增$arr[4]
unset($arr[4]); //删 删除$arr[4]
$arr[3] = 'e'; //改 修改$arr[3]的值
二位数增删改差(多维数组同理)
$arr = [
'php' => [
'html',
'js',
'css'
],
'java',
'javascript'
]; echo $arr[php][1]; //查 解析js
关联数组新增 可以$arr[]='数组最后下标添加数据';
$arr = [1,2,3,4,5]; echo count($arr);//获取数组长度
$num = count($arr);
for ($i=0;$i<$num;$i++){
echo $arr[$i].'<br />';
} //输出所有索引数组的值
$arr = [1,2,3,4,5,6];
$sum = 0;
$num = count($arr);
for ($i=0;$i<$num;$i++){
$sum+=$arr[$i];
}
echo $sum; //求所有数组值的和
```
# 关联数组遍历
```
$arr = ['a' => '1', 'b'=>'2','c'=>'3'];
foreach($arr as $key => $value){
echo $arr[$key].'<br />';
} //key是键(下标) value是值 索引数组也是可以这样遍历
foreach ($arr as $value){
echo $value.'<br />';
} //直接遍历出该关联数组所有值
list()使用
$arr=['a','b','c','d','f'];
list($a,$b,$c,$d) = $arr;
$echo $a,$b,$c,$d; //解析结果是 abcd
//list()里面的数据一一赋上数组的值,只对索引数组有效
```
# 超全局数组
```
var_dump($_GET); //可以接收from的get传参数 url地址传输
var_dump($_POST); //可以接收from的post传参数
$_REQEST //可以接收get/post
dump($_SERVER);$_SESSION/$_COOKIE
```
# 错误处理
```
notice warning警告错误 //会执行后面代码 (@解决)
Fatal error 致命错误 //后续代码不会执行
php.ini display_errors = off //关闭后不报错误提示 写到日志给开发人员查找
php.ini error_log 错误文件路劲
```
# 日期函数
```
时间戳 echo time();
$time = time(); echo data('Y-m-d H:i:s' , $time); //格式化时间戳
date_default_timezone_set('PRC'); // 设置北京时间
或者php.ini data.timezone="PRC"
```
# 会话控制
```
cookie存在客服端的
setcookie('name',''zhangsan',time()+60,'/'); //参3失效时间60秒,参4 当前路劲
var_dump($_COOKIE); //打印输出看一下
setcookie('name','',time()-1,'/') //注销cookie
if($_COOKIE['name']=='zhangsan'){ }//判断形势
session存服务端的
session_start(); //开启session
$_SESSION['username'] = 'zhangsan'; //session存值
session_destroy(); //释放session
dump($_SESSION); //打印session
echo $_SESSION['username']; //输出值
unset($_SESSION['username']); //取消username
```
# GD库
```
php.ini extension=php_gd2.dll //取消;开启
简单画图
//1创建画布
$image = imagecreatetruecolor(600,600);
//2创建颜色
$red = imagecolorallocate($image,255,0,0);//红色 参数234 是红绿蓝 三原色 0-255
$green = imagecolorallocate($image,0,255,0);
$blue = imagecolorallocate($image,0,0,255);
//3用GD库给咱们的函数去画画
//imageline($image,0, 0 ,600 , 600, $red); //画一条线 参1资源,参2x1坐标 参3y1坐标 参4x2坐标 参5y2 参6画啥颜色
imagefilledrectangle($image,10,10,40,40,$green);//画一个矩形
imageellipse($image,30,30,100,100,$blue) //画椭圆形
//4告诉浏览器你的mime类型
header("Content-type:image/png");
//5输出到浏览器或者可以存放到你的本地
imagepng($image);
//6销毁资源
imagedestroy($image);
=================================================
关于gd的相关函数
imagecreatetruecolor //创建一个画布
imagecolorallocate //为一幅图像分配颜色
imagefill //填充
imageline //画线
输出
imagepng 输出(资源) 可以传两个参数 1:资源 2:路径 文件名
imagejpeg/imagegif/imagewbmp
形状
imagerctangle矩形
imagefilledrectangle 画一个矩形并填充
imagesetpixel 画像素
imagepolygon 画多边形
imagefilledpolygon 画一个多边形并填充
imagefilledellipse 画一个椭圆并填充
imagefilledarc 可以饼状图
```
# dos数据库操作mysql
```
dos应用mysql需先配置环境
dos登录:my]sql -uroot -p 回车 密码:root //quit退出数据库
\h 是帮助 \c清除命令 show databases(查看数据库)
create database bbs(创建bbs数据库) drop database bbs(删除bbs数据库)
use bbs(使用bbs 才可以操作该库)
drop tables user;(删除数据表)
create table user<id int,username vachar<20>,password varchar<32>>;(创建表)
show tables(查看表)
show create table user;(查看建表语句)
show create database bbs;(查看创建数据库语句)
desc user(查看表结构)
alter table user rename user_table;(修改user表名 改为user_table)
alter table user change passwrod pass varchar<45>;(修改字段 帮password修改成pass 并修改varchar长度)
alter table user drop pass(删除字段pass)
alter table user add pass varchar<32> first; (在前面插入字段)
alter table user add pass varchar<32> after name; (在name字段后面插入字段)
alter table user modify name varchar<40>;(修改字段值)
auto_increment 自动增加,只用整型 常与primary key一起使用 用于主键
给字段添加索引 alter table bbs_user add index<age> 给age加了普通索引 MUL
给字段添加索引 alter table bbs_user add unique<password> 给password加了唯一的索引 UNL
给字段添加索引 alter table bbs_user add fulltext<address> 给address加了全文搜索的索引 MUL
给字段添加索引 alter table bbs_user add primary<id> 给id加了主键索引 MUL
show index from bbs_user; //查看bbs_user表的加索引信息
数据格式插入dos (id int/name varchar/age tinyint)
insert into bbs_user values<1,'王宝强',18>; //插入一个数据
selesct * from bbs_user; //查看表数据
insert into bbs_user(name,age) values('谢霆锋',20); //另一种插入方法 id自动增加可以不插入
insert into bbs_user(name,age) values('李连杰',30),('成龙',32) //一次性多插入数据
delete from user where name='王宝强'; //删除name=王宝强的字段
update user set name='谢霆锋' where id = 1; //修改id=1的值 改成谢霆锋
update user set name='谢霆锋',age=18 where id = 1;//修改id=1的name值及age值
select name from user; //查询表的所有name字段 多字段就用name,age 这种指定查询效率高
select distinct name from user;//查询user表字段的name所有值 去掉重复信息
select * from user where id=2; //查询id=2的所有字段 id还可以id>2 ,id<2等
select * from user where age between 30 and 40; //查询user表中age字段30-40之间的值
select * from user where age=30 or age=50; //查询user表中age字段等于30和等于50的值查询出来
select * from user where age!=30; //查询user表中age字段不等于30的值查询出来 跟age<>50 就是不等于
select * from user where age in(18,19,20) //查询user表中age值有18,19,20的字段
select * from user where name like '%强' //模糊查询user表中name值有 强后缀的 (%强% 包含有强字的)
select * from user order by age; //查询user表中age 升序方式 (asc升序方式)
select * from user order by age desc; //查询user表中age 降序方式
select * from user limit 5,5; //查询user表中的字段 从第5条开始 取5条数据 (取3条就是 5,3 参1起始参2条数)
select * from user limit 3; //等于0,3方式 limit就是分页形式
select * from user group by name; //去掉重复值 值保留一个
select count(*) from user; //查询总数据条数
select * from user; select name as username from user;// 起别名 变成username
select * from user where age > 10 order by id desc limit 0,3 ; //组合查询
user表(id int/name varchar/age tinyint/gid int) //gid表示购买的商品id
goods(gid int/gname vachar/price int/) gname=产品名字:铅笔,橡皮 price=价格1
select name , gname from user inner join goods on user.gid = goods.gid; //内联查询2表方式
select user.name from user left join goods on user.gid = goods.gid; //以左表基准 左联查询
select user.name from user right join goods on user.gid = goods.gid; //以右表基准 右联查询
select * from user where gid in(select gid from goods);//嵌套查询 不推荐使用效率慢
```
# PHP链接数据库 及 增删改查
```
//1连接数据库
$link = mysqli_connect('localhost','root','123456'); //参1主机名,参2账号,参3密码
//$link=mysqli_connect("localhost","root","root") or die("链接数据库失败");
//dump($link);
//2 判断是否连接成功
if(!$link){
exit('数据库连接失败!');
}
//3设置字符集
mysqli_set_charset($link,'utf8');
//4选择数据库
mysqli_select_db($link,'user') //use user
//5准备sql语句 select update insert delete
$sql = "select * from user";
//6发送sql语句
$obj = mysqli_query($link,$sql);
//dump($obj);
//7处理结果集
$result = mysqli_fetch_assoc($obj);
//dump($result)
//8关闭数据库 (释放资源)
mysqli_close($link);
================常用函数================
$link=mysqli_connect("localhost","root","root") or die("链接数据库失败");
mysqli_set_charset($link,'utf8');
mysqli_select_db($link,'wms');
$sql = "select * from user";
$obj=mysqli_query($link,$sql);
//$result = mysqli_fetch_assoc($obj); //返回一条的关联数组
//dump($result);
//while($rows = mysqli_fetch_assoc($obj)){
// dump($rows);
//} //返回所有数据 关联数组
//$res = mysqli_fetch_row($obj);
//dump($res); //返回一条的 索引数组
//$res = mysqli_fetch_array($obj);
//dump($res); //返回一条即有关联 又有索引的数组
//$res = mysqli_num_rows($obj);
//dump($res); //查询数据的总条数
//插入数据
//$sql = "insert into user values('用户名','密码','其他数据')";
//$obj=mysqli_query($link,$sql);
//$res = mysqli_insert_id($link); //返回最后插入数据的主键id值
//dump($res);
mysqli_close($link);
================删除================
$link = mysqli_connect('localhost','root','root') or die('数据库连接失败');
mysqli_set_charset($link,'utf8');
mysqli_select_db($link,'user');
$sql = "select * from user";
$obj = mysqli_query($link,$sql);
echo '<table width="600" border="1" >';
echo '<th>编号</th><th>姓名</th><th>性别</th><th>年龄</th><th>操作</th>';
while($rows = mysqli_fetch_assoc($obj)){
echo '<tr>';
echo '<td>'.$rows['id'].'</td>';
echo '<td>'.$rows['name'].'</td>';
//echo '<td>'.$rows['sex'].'</td>'; //1是男0是女 用三元运算符
echo '<td>'.($rows['sex']==1?'男':'女').'</td>'; //1是男0是女 用三元运算符
echo '<td>'.$rows['age'].'</td>';
echo '<td><a href="del.php?id='.$rows['id'].'">删除</a>
/<a href="update.php?id='.$rows['id'].'">修改</a></td>';
echo '</tr>';
}
echo '</table>'
mysqli_close($link);
================del.php================
$id = $_GET['id'];
$link = mysqli_connect('localhost','root','root') or die('数据库连接失败');
mysqli_set_charset($link,'utf8');
mysqli_select_db($link,'user');
$sql = "delete from user where id=$id";
$boolen = mysqli_query($link,$sql);
if($boolean && mysqli_affected_rows($link)){
echo '删除成功<a href="userlist.php">返回列表</a>';
}else{
echo '删除失败';
}
mysqli_close($link);
================update.php================
$id = $_GET['id'];
$link = mysqli_connect('localhost','root','root') or die('数据库连接失败');
mysqli_set_charset($link,'utf8');
mysqli_select_db($link,'user');
$sql = "select * from user where id=$id";
$obj = mysqli_query($link,$sql);
//dump($obj);
$rows = mysqli_fetch_assoc($obj);
//dump($rows);
<html>
<from action="doupdate.php">
<input type="hidden" name="id" value="<?php echo $rows['id'] ?>" />
用户名:<input type="text" name="name" value="<?php echo $rows['name']; ?>" /> <br />
性别:<input type="text" name="sex" value="<?php echo $rows['sex']; ?>" /> <br />
年龄:<input type="text" name="age" value="<?php echo $rows['age']; ?>" /> <br />
<input type="submit" value="执行修改" />
</from>
<html>
mysqli_close($link);
================doupdate.php================
$id = $_GET['id'];
$name = $_GET['name'];
$sex = $_GET['sex'];
$age = $_GET['age'];
$link = mysqli_connect('localhost','root','root') or die('数据库连接失败');
mysqli_set_charset($link,'utf8');
mysqli_select_db($link,'user');
$sql = "update user set name='$name',sex='$sex',age='$age' where id=$id";
$result = mysqli_query($link,$sql);
if($result && mysqli_affected_rows($link)){
echo '修改成功<a href="userlist.php>返回</a>"';
}else{
echo '修改失败';
}
mysqli_close($link);
================add.php================
<from action="doadd.php">
名字:<input type="text" value="" name="name" /> <br />
密码:<input type="text" value="" name="password" /> <br />
性别:<input type="radio" name="sex" value="1">男<input type="radio" name="sex" value="0">女<br />
年龄:<input type="text" value="" name="age" /> <br />
<input type="submit" value="提交" />
</from>
================doadd.php================
$name = $_GET['name'];
$password = $_GET['password'];
$sex = $_GET['sex'];
$age = $_GET['age'];
//dump($_GET);
$link = mysqli_connect('localhost','root','root') or die('数据库连接失败');
mysqli_set_charset($link,'utf8');
mysqli_select_db($link,'user');
$sql = "insert into user (name,password,sex,age) value('$name','$password','$sex','$age')";
$result = mysqli_query($link,$sql);
$id=mysqli_insert_id($link); //dump($id);
if($id){
echo '添加成功<a href="userlist.php>返回</a>';
}else{
echo '添加失败';
}
mysqli_close($link);
================分页limit================
//求出总条数 比如13条数据 每页显示5条 ceil(总条数/每页显示数)=总页数
//select * from user limit 0,5 第一页
//select * from user limit 5,5 第二页
//select * from user limit 10,5 第三页
//推出来的公式 ($page-1) *$ num(5)
-----------------------------------开始写代码
$link = mysqli_connect('localhost','root','root') or die('数据库连接失败');
mysqli_set_charset($link,'utf8');
mysqli_select_db($link,'user');
$sql = "select count(*) as count from user"; //查询总条数顺便起as count 起了个别名
$result =mysqli_query($link,$sql);
$pageRes = mysqli_fetch_assoc($result); //dump($pageRes); //会显示总条数据
$count = $pageRes['count'];//在求总页数 每页显示5条数据
$num=5;
$pageCount = ceil($count/$num);//dump($pageCout) //得总页数
//根据总页数求出偏移量
$page = 1; //给个默认值
$offset = ($page-1) * $num;
//---------------分页结束---------------
$sql = "select * form user limit" .$offset.','.$num;
在userlist分页代码
$next = $page+1
$prev = $page-1
//上一页限制
if($prev<1)[
$prev =1;
}
//下一页限制
if($next > $pageCount)[
$next = $pageCount;
}
$page = empty($_GET['page']? 1 : $_GET['page']); //默认为?page=1 如果?page=2就会有数据变化
写一个分页代码<a href="userlist?page=1"> 首页 </a>
<a href="userlist?page=<?php echo $prev; ?>"> 上一页 </a> //上一页page-1
<a href="userlist?page=<?php echo $next; ?>"> 下一页 </a> //下一页page+1
<a href="userlist?page=<?php echo $pageCount; ?>"> 尾页 </a>
//有个简单写法 <?php echo ?> 可以直接替换成<?= ?> 可以直接同用
============================没有写分页的1 2 3快速点击的
PHP数据库查询操作-分页实例 亲测管用
数据库test/student表创建id,name,sex,age 随便加了几条数据测试
<?php
$link = mysqli_connect('localhost','root','root') or die('数据库连接失败');
mysqli_set_charset($link,'utf8');
mysqli_select_db($link,'test');
$sql = "select count(*) as count from student"; //查询总条数顺便起as count 起了个别名
$result =mysqli_query($link,$sql);
$pageRes = mysqli_fetch_assoc($result); //dump($pageRes); //会显示总条数据
$count = $pageRes['count'];//在求总页数 每页显示5条数据
$num=2;//每页显示几条数据
$pageCount = ceil($count/$num);//dump($pageCount) //得总页数
$page = empty($_GET['page']) ? 1 : $_GET['page']; //获取当前浏览器页码 默认首页为1
$offset = ($page-1) * $num;
$sql = "select * from student limit " . $offset .','.$num; //注意limit后面的空格 坑!!
$obj =mysqli_query($link,$sql);
echo '<table width="600" border="1" >';
echo '<th>编号</th><th>姓名</th><th>性别</th><th>年龄</th>';
while($rows = mysqli_fetch_assoc($obj)){
echo '<tr>';
echo '<td>'.$rows['id'].'</td>';
echo '<td>'.$rows['name'].'</td>';
echo '<td>'.($rows['sex']==1?'男':'女').'</td>'; //1是男0是女 用三元运算符
echo '<td>'.$rows['age'].'</td>';
echo '</tr>';
}
echo '</table>';
$prev = $page-1;
$next = $page+1;
//上一页限制
if($prev<1){
$prev =1;
}
//下一页限制
if($next > $pageCount){
$next = $pageCount;
}
?>
<a href="index?page=1"> 首页 </a>
<a href="index?page=<?php echo $prev; ?>"> 上一页 </a>
<?php
for($i=1;$i<=$pageCount;$i++){
echo "<a href='index?page=$i'> $i </a>";
}
?>
<a href="index?page=<?php echo $next; ?>"> 下一页 </a>
<a href="index?page=<?php echo $pageCount; ?>"> 尾页 </a>
<?php mysqli_close($link); ?>
```
# 正则
```
<?php
$str = 'abcde'; //要查找的内容
$pattern = '/abc2/'; //查找的规则定界符(a-z A-Z 0-9 空格 \ 都不可以做定界符)
//推荐使用定界符/ / 也可以- -,# #,等...
dump(preg_match($pattern,$str,$matche));
//参1:规则 参2:匹配 参3:匹配到返回索引数组/没匹配到返回空数组
dump($matche);
//$pattern = '/abc/'; //abc就是原子
//正则表达式中至少一个原子 有a-z A-Z 0-9 空格 _
// \d 0-9
// \D 匹配0-9以外的
// \w a-z A-Z 0-9 _
// \W 匹配(a-z A-Z 0-9 _)以外的
// \s 匹配 回车 换行 空格 tab键
// \S 匹配( 回车 换行 空格 tab键)以外的
//$pattern = '/[a-z]/'; 匹配a-z
//$pattern = '/[^a-z]/'; 匹配A-Z 以外的
//$pattern = '/./'; 匹配\n 回车符 以外的
//$pattern = '/a*/'; //型号如果有返回原子 没有返回空
$str = 'ABCabchhhhdef
abd
abc';
//$pattern = '/a*/'; //星号如果有返回原子 没有返回空
//$pattern = '/a*/'; //加号后面如果多次有相同原子 则返回所有一样的
//$pattern = '/a?/'; //问号匹配原子0次或者是1次
//$pattern = '/a{0,2}/'; //大括号{0,}匹配多个原子
//$pattern = '/^a.+f$/'; //^a 以a开始 中间.+ 以f结束
//$pattern = '/ABC/i'; // i只前面不区分大小写
//$pattern = '/abc/m'; // m表示视为多行匹配\n 注意\n需要双引号
//$pattern = '/abc/s'; // s表示视为单行匹配\n 注意\n需要双引号
//$pattern = '/h+/U'; // U只匹配h+的一个
匹配url
//http://www.baidu.com
//https://www.baidu.com
//www.baidu.com
//baidu.com
//$str = 'http://www.baidu.com';
//$str = 'https://www.baidu.com';
$str = 'baidu.com';
$pattern = '/(http|https)?(:\/\/)?(\w+.?)(\w+.?)(\w+.?)/';
//验证规则(http|https)?即http|https表示可有可无
//(:\/\/)?即://表示可有可无
//(\w+.?)即w表示可有可无
if(preg_match($pattern,$str,$match)){
echo '匹配成功';
dump($match);
}else{
echo '匹配失败';
}
//查找多原子preg_match_all()
$str = 'abcdeaaaaaaaa';
$pattern = '/a/';
preg_match_all($pattern, $str ,$match); //查找多原子 并输出索引数组
dump($match);
//匹配替换
$str = '<div> 你好 </div>';
$pattern = '/<div>(.*)<\/div>/';
$replace = '<h1>我是被替换以后的</h1>';
$newStr = preg_replace($pattern, $replace ,$str);
echo $newStr;
模板引擎 通过引动display文件正则方法 类似tp6 没去学习
```
