Очистка html кода

Функция очистики html кода почти один в один повторяет PHP функцию очистки строки

public function parseHtml( $text ){
        $text = trim( $text );
        $text = preg_replace( "/[^\x20-\xFF]/","",@strval( $text ) );
        $text = strip_tags( $text,"<span><strong><i><img><a><u><p><ul><ol><li><br><object>
<embed><param><table><tr><td><th><h1><h2><h3><h4><h5><hr><div><code><pre>" );
        
        $text = mysql_real_escape_string( $text );
        return $text;
}

На первом шаге trim() удаляет пробельные символы из начала и конца строки, затем preg_replace() удаляет не печатаемые, опасные символы. Затем происходит удаление html тэгов, но не всех, а только тех, которые не указаны в исключениях. Например, функция удалит тэг <script>, но оставит <img>, потому что <img> указан в списке исключений. На последнем шаге выполняется экранирование строки для использования в sql запросе функцией mysql_real_escape_string();

Стоит отметить, что эта функция, в случае необходимости, может подправляться под конкретную задачу. Иногда бывает нужно, например в комментариях, оставить только тэги <p><strong>, а остальные удалить, для этого достаточно сократить количество исключений в команде strip_tags(). Почему я не вынес этот параметр в качестве входного параметра? Потому что для 99.9% задач мне бывает необходим именно этот набор исключений, а в остальных случаях мне проще завести отдельную функцию, которая будет чистить только то, что нужно :)