Ваш вариант защиты от инъекций в корне неверный. Для защиты необходимо не строку "очищать", а правильно с ней работать, как описал выше
Алексей Николаев.
"Очисткой" вы защититесь лишь от примитивных попыток взлома и 100% будут случаи, когда вы будете "портить" содержимое строки. Бесят сайты, гд в коментарии нельзя нормально указать кусок html-кода (именно как текст). Их создатели тоже решили, что надежней "вырезать".
Добавлено
В итоге уточнений пришёл к выводу такому:
<?php
function my($text){
# return $text;
# return htmlspecialchars($text);
return htmlspecialchars($text, null, null, false);
}
?>
<br>®
<br><?=my('®')?>
<br><?=my('<b>text-®-text</b>')?>
<br><?=my('<script>alert("XSS ®")</script>')?>