企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
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 没去学习 ```