Jump to content


This topic is now archived and is closed to further replies.


To remove empty HTML tags

Recommended Posts

Hi everyone.

I would like to ask, how can I remove all the empty HTML tags from a user input?

I want to remove things like the following:

<p align=center>\n&nbsp;\n</p>

How can I do it?

Thanks first.

Share this post

Link to post
Share on other sites
Try this:


$tests = array(
### Empty.
"<p align=center>\n&nbsp;\n</p>",
### Not Empty.

function remove_empties ($matches) {
### Variableize the stuff between the tags.
$content = $matches[2];
### Remove all nbsps, empty tags, brs, and whitespace.
$content = str_replace('&nbsp;', '', $content);
$content = preg_replace('%<(\w+)[^>]*></\1>%', '', $content);
$content = preg_replace('%<br/?>%', '', $content);
$content = preg_replace('/\s/s', '', $content);
### If there is still content the tag innards are not empty,
### send back the original match. Otherwise, send empty.
return $content ? $matches[0] : '' ;

echo '<table border="1">';
foreach ($tests as $test) {
echo '<tr><td>', htmlentities($test), '</td>';
$test = preg_replace_callback('%
%xs', 'remove_empties', $test);
echo '<td>', htmlentities($test), '</td></tr>';
echo '</table>';

Share this post

Link to post
Share on other sites


Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.