Если вы разрешаете пользовательский ввод HTML, вам нужно решить гораздо большую проблему, чем несколько неэкранированных угловых скобок; HTML действительно сложен для правильной проверки и фильтрации, и если вы делаете это неправильно, вы открываете себя для атак XSS. Я написал библиотеку, которая делает это; кто-то уже разместил здесь ссылку на нее, поэтому я не буду повторять.
Однако, чтобы ответить на ваш вопрос, самый надежный способ преобразования блочных угловых скобок в экранированные формы - это анализ HTML с помощью DOM / libxml, а затем повторная его проверка. Все, что использует регулярные выражения или что-то подобное, будет обречено на провал в крайнем случае. Вы также можете написать свой собственный синтаксический анализатор, но это также займет немного работы.