PHP ストリップタグ()

王林
リリース: 2024-08-29 12:52:40
オリジナル
1120 人が閲覧しました

PHP のstrip_tags() 関数は、HTML および PHP タグから文字列を削除/削除する組み込み関数です。これは、バイト単位で NULL 値を持つ文字列と、指定された入力文字列から PHP タグが削除/除去された HTML を返します。この機能は基本的に、サイトへのユーザーの入力を表示するときに役立ちます。たとえば、サイトにメッセージ フォーラムを作成すると、ユーザーは次のようなタイトルを投稿できます:

THIS SITE IS BAD!

。 Web サイトが各投稿のすべてのタイトルを表示する場合、この不要なメッセージも、ページのすべての訪問者に対して見出し形式でサイトに表示されます。したがって、このstrip_tag()関数を使用すると、そのような問題を根絶するのに役立ちます。

広告 このカテゴリーの人気コース PHP 開発者 - 専門分野 | 8コースシリーズ | 3 つの模擬テスト

無料ソフトウェア開発コースを始めましょう

Web 開発、プログラミング言語、ソフトウェア テスト、その他

構文:

string strip_tags( $str, $allowed_tags )

必須パラメータ: 関数が受け入れるパラメータは 2 つあります。

  • $str は必須パラメータであり、チェックする必要があるメイン文字列です。
  • $allowed_tags は、許可され、削除されないタグを記述する非必須パラメータです。したがって、これらのタグは保持されます。

戻り値: このstrip_tags関数は、入力文字列から取り除かれた結果の文字列を返します。

例外:

  • この関数は HTML の検証を提供しません。
  • デフォルトで削除されるものには、HTML コメントと PHP タグがあり、これらはハードコードされているため変更できません。
  • 自己終了 XHTML タグは PHP 5.3.4 以降のバージョンでは無視されるため、$allowed_tags で使用できるのは非自己終了タグのみです。

PHPのstrip_tags()関数の例

PHP のstrip_tags 関数の動作を理解するために、いくつかの例を見てみましょう。

例 #1

コード:

<?php<br /> // PHP programme to demostrate<br /> // strip_tags function without $allowed_tags parameter<br /> echo strip_tags("Hello <b>Sample Program!</b>");<br> ?>

出力:

PHP ストリップタグ()

上記の例では、すべての文字を許可するかを指定する 2 番目のパラメーターを指定せずに、strip_tags 関数を使用できることを示す単純な PHP コードを表示しています。これは、文字列内のすべての文字が許可され、そのまま印刷されることを意味します。

例 #2

コード:

<?php<br /> $str = '<p>To test a paragraph.</p><!-- Starting comments --> <a href="#fragment">Another paragraph goes here</a>';<br> echo strip_tags($str);<br> echo "n";<br> // Here we allow HTML tag <p><br> echo strip_tags($str, '<p>');<br> // In the version till PHP 7.4.0 the above code can be written as:<br> // echo strip_tags($str, ['p', 'a']);<br> ?>

出力:

PHP ストリップタグ()

上記の例では、最初に必要な HTML コードを指定し、それを入力文字列 $str に割り当てています。次に、単一のパラメーターのみを使用して、その文字列に対してストリップ タグ関数を使用します。次に、タグ

のみを指定する 2 番目のパラメーター $allow_tags の使用方法を紹介します。

のみを意味します。タグは許可され、残りのタグはすべて削除される必要があります。したがって、出力では

のみが確認できます。タグ情報が表示され、タグ情報は表示されません。また、出力では HTML コメントが印刷されていないことがわかり、2 番目のパラメーター リストで指定しなくても、HTML コメントがデフォルトでこの関数によってトリミングされることがわかります。

警告:

  • この機能は、XSS などの特定の攻撃を防ぐために使用することはできません。必要な出力の種類に応じて、この目的に使用できる htmlspecialchars() のような他の適切なメソッドまたは関数があります。
  • 関数strip_tags()は、HTMLタグを実際には検証せずに削除するだけです。その結果、タグが破損したり、予想よりも多くまたは少ないデータが削除されたりする可能性があります。したがって、関数の 2 番目のパラメーターを指定する際には注意が必要です。
  • この関数は、$allowed_tags 関数で指定するパラメータの変更もサポートしていません。これには、一部のユーザーが他のユーザーに表示するテキストを投稿するために使用する onmouseover 属性や style 属性も含まれます。
  • この関数を使用する際にもう 1 つ注意すべき点は、$allowed_tags にパラメーターとして何を指定したかに関係なく、HTML 内で文字が指定された長さ (1023 バイト) を超えるタグ名は無効であるかのように扱われることです。 .

例 #3

コード:

<?php<br /> $str = '<a title="" href="/index.html"><b>Some Text</b></a><br> Just a sample text to showcase a paragraph coming in HTML body';<br> echo strip_tags_content($str);<br> function strip_tags_content($str) {<br> return preg_replace('@<(w+)b.*?>.*?</1>@si', '', $str);<br> }<br> ?>

出力:

PHP ストリップタグ()

上記の例では、strip_tags 関数を使用して、入力文字列内のアンカー タグとその内容を削除しています。 PHPのstrip_tagsは、HTMLの開始タグと終了タグの両方を削除する際に自動的に削除します。

例 #4

コード:

<?php<br /> $str = '<?= '<?= 1 ?>' ?>2';<br> var_dump(strip_tags($str));<br> ?>

出力:

PHP ストリップタグ()

この例は、ネストされた PHP タグからコンテンツを削除する方法を示します。

例 #5

コード:

<?php // Test.php<br /> $str = '<br>Trial<br/>on<br />NewLine';<br> $d = strip_tags($str, '<br />');<br> var_dump($d); // Displays string(11) "TraialonNewLine" on output<br> ?>

出力:

PHP ストリップタグ()

この例では、
内のコンテンツのみを許可していることがわかります。文字列とこの出力は、異なるバージョンの PHP で実行すると変更されます。

例 #6

コード:

<?php<br> function strip_tags_d($a)<br> {<br> return is_array($a) ?<br> array_map('strip_tags_d', $a) :<br> strip_tags($a);<br> }<br> // Example<br> $arr1 = array('<b>Car</b>', '<i>Bat</i>', array('<b>Car</b>', '<i>Bat</i>'));<br> $arr1 = strip_tags_d($arr1);<br> // Output<br> print_r($arr1);<br> ?>

出力:

PHP ストリップタグ()

上記の例では、strip_tags 関数の再帰関数の使用を表示しています。したがって、出力では、配列が 2.

のループで出力されていることがわかります。

結論

上で示したように、strip_tags() 関数を使用してコードから不要な HTML タグと PHP タグを取り除く方法を説明しました。この関数は、入力文字列を解析し、その構造を抽出できます。通常、HTML ドキュメントから削除する入力引数のリストとして渡す、指定された HTML または PHP タグをトリミングまたは置換します。これは、HTML ではなく PHP タグのみをトリミングする必要がある場合や、その逆の場合にも使用されます。

おすすめ記事

これは、PHPのstrip_tags()のガイドです。ここでは、PHP のstrip_tags() 関数の概要とその例、およびコードの実装について説明します。さらに詳しく知りたい場合は、他のおすすめ記事もご覧ください -

  1. PHP フレームワーク
  2. PHP チョップ()
  3. PHP setlocale()
  4. PHP strtotime

以上がPHP ストリップタグ()の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート