ホームページ >PHPフレームワーク >ThinkPHP >thinkphp が HTML タグをフィルタリングしない場合の対処方法

thinkphp が HTML タグをフィルタリングしない場合の対処方法

藏色散人
藏色散人オリジナル
2022-12-05 10:11:102234ブラウズ

thinkphp が HTML タグをフィルタリングしない場合の解決策: 1. 対応する tp ファイルを開きます; 2. "strip_tags(htmlspecialchars_decode($data['post']['post_content'])); メソッドを使用します。変換されたエンティティは元に戻すことができます。

thinkphp が HTML タグをフィルタリングしない場合の対処方法

このチュートリアルの動作環境: Windows 7 システム、ThinkPHP バージョン 5、Dell G3 コンピューター。

thinkphp が HTML タグをフィルタリングしない場合はどうすればよいですか?

TP5 ストリップタグを使用して HTML タグをフィルタリングする解決策が機能しません

strip_tags を使用して ThinkPHP5 で 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 ビデオ」チュートリアル###"###

以上がthinkphp が HTML タグをフィルタリングしない場合の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。