With the continuous development of the Internet and the improvement of user needs, more and more websites need to provide text editing functions, so users can add, edit or delete content on the page. When these contents are saved to the database or displayed on the page, they usually need to undergo some processing to make them into plain text format.
For PHP programmers, the process of removing HTML, that is, the process of converting a piece of rich text into plain text format, is an important skill. So, how do you use PHP to strip away HTML and get plain text? The following article will give some practical methods on this topic.
There is a strip_tags() function in PHP that can remove HTML tags and obtain a string in plain text format. The function format is as follows:
string strip_tags ( string $str [, string $allowable_tags ] )
The first parameter is the string to be processed, and the second parameter is the name of the tag element that is allowed to be retained. If the second parameter is not specified, all HTML tags will be removed.
For example, the following code will remove all tag elements in the HTML text and output the result:
<?php $html = '<div><p>Hello, world!</p></div>'; $text = strip_tags($html); echo $text; // 输出结果:Hello, world! ?>
The above method can be expanded to support retaining the specified tag elements.
<?php $html = '<div><p>Hello, world!</p><a href="www.google.com">Google</a></div>'; $text = strip_tags($html, '<p>'); echo $text; // 输出结果:<p>Hello, world!</p> ?>
In addition to the strip_tags() function, using regular expressions is also a common method. Regular expressions can match HTML tags and remove them. The following is a sample code:
<?php $html = '<div><p>Hello, world!</p></div>'; $text = preg_replace('/<[^>]*>/', '', $html); echo $text; // 输出结果:Hello, world! ?>
Use the preg_replace() function and the regular expression "/<1*>/" to remove the HTML tags. This regular expression can match any string starting with "<" and ending with ">". The "^>" in brackets means matching all characters except ">".
Although the above two methods are simple and effective, they will completely remove HTML tags, including some formatting tags, such as bold, italics, underline, etc. What if you don't want to remove these tags completely, but just want to keep their style?
At this time we can use PHP DOM extension to achieve more sophisticated HTML tag removal. PHP DOM extension is a powerful and flexible extension that can parse HTML and XML documents and then operate on them, such as querying, inserting, deleting nodes, etc.
The following is a sample code that uses PHP DOM extension to remove HTML tags:
<?php $html = '<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! ?>
First create a DOMDocument object, and then pass the HTML string to be processed to its loadHTML() method. Next, use the getElementsByTagName('body')->item(0) method to get the body element in HTML, and then use the textContent attribute to get all the plain text content under the body element. Finally, the results are output to the screen.
This article introduces three PHP-based methods to remove HTML tags and obtain plain text. The first is a simple strip_tags() function, which can achieve the most basic HTML tag removal. The second method uses the advantages of regular expressions to match and remove HTML tags. The third method uses PHP DOM extension, which can Completely control the HTML system and more finely control the output results. Everyone can flexibly choose to use it according to their own needs.
The above is the detailed content of How to remove html and get plain text in php. For more information, please follow other related articles on the PHP Chinese website!