ホームページ >バックエンド開発 >PHPの問題 >PHPでHTMLを削除してプレーンテキストを取得する方法

PHPでHTMLを削除してプレーンテキストを取得する方法

PHPz
PHPzオリジナル
2023-04-10 09:45:301555ブラウズ

インターネットの継続的な発展とユーザー ニーズの向上に伴い、ユーザーがページ上のコンテンツを追加、編集、削除できるように、テキスト編集機能を提供する Web サイトがますます必要になっています。これらのコンテンツをデータベースに保存するとき、またはページに表示するときは、通常、プレーン テキスト形式にするために何らかの処理を行う必要があります。

PHP プログラマーにとって、HTML を削除するプロセス、つまりリッチ テキストをプレーン テキスト形式に変換するプロセスは重要なスキルです。では、PHP を使用して HTML を取り除き、プレーン テキストを取得するにはどうすればよいでしょうか?次の記事では、このトピックに関する実践的な方法をいくつか紹介します。

strip_tags() 関数を使用して HTML タグを削除する

PHP には、HTML タグを削除してプレーン テキスト形式の文字列を取得できるstrip_tags() 関数があります。関数の形式は次のとおりです。

string strip_tags ( string $str [, string $allowable_tags ] )

最初のパラメータは処理される文字列で、2 番目のパラメータは保持が許可されるタグ要素の名前です。 2 番目のパラメータが指定されていない場合は、すべての HTML タグが削除されます。

たとえば、次のコードは HTML テキスト内のすべてのタグ要素を削除し、結果を出力します。

<?php
    $html = &#39;<div><p>Hello, world!</p></div>';
    $text = strip_tags($html);
    echo $text; // 输出结果:Hello, world!
?>

上記のメソッドは、指定されたタグ要素の保持をサポートするように拡張できます。

<?php
    $html = &#39;<div><p>Hello, world!</p><a href="www.google.com">Google</a></div>';
    $text = strip_tags($html, '<p>');
    echo $text; // 输出结果:<p>Hello, world!</p>
?>

正規表現を使用して HTML タグを削除する

strip_tags() 関数に加えて、正規表現を使用することも一般的な方法です。正規表現は HTML タグと一致し、タグを削除できます。以下はサンプル コードです:

<?php
    $html = &#39;<div><p>Hello, world!</p></div>';
    $text = preg_replace('/<[^>]*>/', '', $html);
    echo $text; // 输出结果:Hello, world!
?>

preg_replace() 関数と正規表現 "/<1*>/" を使用して HTML を削除しますタグ。この正規表現は、「<」で始まり「>」で終わる任意の文字列と一致します。括弧内の「^>」は、「>」を除くすべての文字と一致することを意味します。

より洗練された HTML タグの削除を実現する

上記の 2 つの方法はシンプルで効果的ですが、太字、斜体、下線などの一部の書式設定タグを含む HTML タグを完全に削除します。これらのタグを完全に削除せず、スタイルを維持したい場合はどうすればよいでしょうか?

現時点では、PHP DOM 拡張機能を使用して、より高度な HTML タグの削除を実現できます。 PHP DOM 拡張機能は、HTML および XML ドキュメントを解析し、クエリ、挿入、ノードの削除などの操作を行うことができる、強力かつ柔軟な拡張機能です。

以下は、PHP DOM 拡張機能を使用して HTML タグを削除するサンプル コードです。

<?php
    $html = &#39;<div><p><strong>Hello, </strong><i>world</i>!</p></div>';
    
    $dom = new DOMDocument();
    $dom->loadHTML($html);

    $body = $dom->getElementsByTagName('body')->item(0);
    $text = $body->textContent;

    echo $text; // 输出结果:Hello, world!
?>

最初に DOMDocument オブジェクトを作成し、次に、処理する HTML 文字列をそのloadHTML() メソッドに渡します。 。次に、getElementsByTagName('body')->item(0) メソッドを使用して HTML の body 要素を取得し、textContent 属性を使用して body 要素の下にあるすべてのプレーン テキスト コンテンツを取得します。最後に、結果が画面に出力されます。

概要

この記事では、HTML タグを削除してプレーン テキストを取得するための 3 つの PHP ベースの方法を紹介します。 1 つ目は、最も基本的な HTML タグの削除を実現できる単純なstrip_tags() 関数です。2 つ目は、正規表現の利点を利用して HTML タグを照合して削除します。3 つ目は、HTML を完全に制御できる PHP DOM 拡張機能を使用します。システムを制御し、出力結果をより細かく制御します。誰もが自分のニーズに応じて柔軟に使用を選択できます。


  1. >

以上がPHPでHTMLを削除してプレーンテキストを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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