pbootcms小程序解析页面出现空白或者解析页面失败的问题
背景:在pbootcms与小程序互通的过程中,使用的是wxParse进行解析html页面,因为小程序不支持复杂的样式,所以有的时候小程序页面会显示空白等解析失败问题,这里就是为了解决这个问题
核心思路:
在请求api.php的过程中针对pb返回的页面内容事先通过正则的方式进行去除一些不能解析的代码
处理步骤:
1)在\apps\api\controller\ContentController.php 中添加一行调用解析方法的代码
$data->content = KillStyle($data->content);
2)在\apps\common\function.php 中添加KillStyle方法
function KillStyle($content) { //echo"进入KillStyle===="; //var_dump($content); $content = preg_replace("/STYLE=.+?['|\"]/i",'',$content);//去除样式 $content = preg_replace("/style=.+?['|\"]/i",'',$content);//去除样式 //var_dump($content); $content = preg_replace("/class=.+?['|\"]/i",'',$content);//去除样式 $content = preg_replace("/id=.+?['|\"]/i",'',$content);//去除样式 $content = preg_replace("/class=.+?['|\"]/i",'',$content);//去除样式 $content = preg_replace("/id=.+?['|\"]/i",'',$content);//去除样式 $content = preg_replace("/lang=.+?['|\"]/i",'',$content);//去除样式 $content = preg_replace("/width=.+?['|\"]/i",'',$content);//去除样式 $content = preg_replace("/height=.+?['|\"]/i",'',$content);//去除样式 $content = preg_replace("/border=.+?['|\"]/i",'',$content);//去除样式 $content = preg_replace("/face=.+?['|\"]/i",'',$content);//去除样式 $content = preg_replace("/face=.+?['|\"]/",'',$content);//去除样式只允许小写正则匹配没有带 i 参数 $content = preg_replace("/<a[^>]*>/i", "", $content); $content = preg_replace("/<\/a>/i", "", $content); $content = preg_replace("/<div[^>]*>/i", "", $content); $content = preg_replace("/<\/div>/i", "", $content); $content= preg_replace("/<!--[^>]*-->/i", "", $content);//注释内容 $content= preg_replace("/|<\/p>/is","", $content); $content= preg_replace("/|<\/span>/is","", $content); $content = preg_replace("/<(script.*?)>(.*?)<(\/script.*?)>/si","",$content); //过滤script标签 return $content; }
栗子:
pc网站:
http://www.mybancai.cn/industry/107.html
上面红圈部分,基本上是直接解析不了的
小程序页面:
https://b5u7wv.smartapps.cn/pages/news-detail/news-detail?id=107
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了