thinkphp不過濾html標簽怎么辦

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標簽不起作用的解決辦法

立即學習PHP免費學習筆記(深入)”;

在文章保存過程中需要獲取前端由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-&gt;request-&gt;param(); $data['post']['content']?=?strip_tags(htmlspecialchars_decode($data['post']['post_content'])); ? echo??$data['post']['post_content']; echo??$data['post']['content'];

?

輸出如下,轉換成功:

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

推薦學習:《thinkPHP視頻教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊13 分享