Rumah  >  Artikel  >  rangka kerja php  >  thinkphp不过滤html标签怎么办

thinkphp不过滤html标签怎么办

藏色散人
藏色散人asal
2022-12-05 10:11:102000semak imbas

thinkphp不过滤html标签的解决办法:1、打开相应的tp文件;2、通过“strip_tags(htmlspecialchars_decode($data['post']['post_content']));”方法对已经转换的实体进行反转即可。

thinkphp不过滤html标签怎么办

本教程操作环境:Windows7系统、ThinkPHP5版、Dell G3电脑。

thinkphp不过滤html标签怎么办?

TP5 使用strip_tags过滤html标签不起作用的解决方法

在ThinkPHP5中使用strip_tags过滤html标签不起作用的解决办法

在文章保存过程中需要获取前端由Uediter编辑器编辑的html内容中的文本,基本思路是使用PHP自带函数strip_tags()直接过滤

于是直接编辑如下: 

$data   = $this->request->param();
$data['post']['content'] = strip_tags($data['post']['post_content']);
 
echo  $data['post']['post_content'];
echo  $data['post']['content'];

 

输出内容如下,strip_tags()函数并没有起到作用:

<p>RWERWERWhgj<strong>ghhfhgn</strong>bfghgh</p>
<p>RWERWERWhgj<strong>ghhfhgn</strong>bfghgh</p>

 

查看TP5手册-输入变量章节-变量过滤我们可以发现,TP5默认对前端传过来的字符串使用了htmlspecialchars转换为 HTML 实体,因此,我的解决办法是对已经转换的实体进行反转,使用htmlspecialchars_decode()函数即可以实现:

$data   = $this->request->param();
$data[&#39;post&#39;][&#39;content&#39;] = strip_tags(htmlspecialchars_decode($data[&#39;post&#39;][&#39;post_content&#39;]));
 
echo  $data[&#39;post&#39;][&#39;post_content&#39;];
echo  $data[&#39;post&#39;][&#39;content&#39;];

 

输出如下,转换成功:

<p>RWERWERWhgj<strong>ghhfhgn</strong>bfghgh</p>
RWERWERWhgjghhfhgnbfghgh

推荐学习:《thinkPHP视频教程

Atas ialah kandungan terperinci thinkphp不过滤html标签怎么办. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn