Функция checkxmlchars()

PHP функция checkxmlchars() для замены в строках символов недопустимых в специфике XML

Специфика языка XML не допускает наличия в текстовых полях специальных символов: ", &, >, <, ' (& используется для обозначения эквивалентов) и символов с ASCII-кодами в диапазоне значений от 0 до 31 (за исключением значений 9, 10, 13 — табуляция, перевод строки, возврат каретки). Для экранирования специальных символов используются специальные эквивалентные обозначения:

Специальный символXML эквивалент
"&quot;
&&amp;
>&gt;
<&lt;
'&apos;

Для замены специальных символов в строках и удаления из строк недопустимых символов можно воспользоваться следующей самописной функцией:

function checkxmlchars($string){
    $forbidden_chars = array(chr(1),chr(0),chr(1),chr(2),chr(3),chr(4),chr(5),chr(6),chr(7),chr(8),chr(11),chr(12),chr(14),chr(15),chr(16),chr(17),chr(18),chr(19),chr(20),chr(21),chr(22),chr(23),chr(24),chr(25),chr(26),chr(27),chr(28),chr(29),chr(30),chr(31));     return str_replace(array('&', "'", '"', '<', '>'), array('&amp;', '&apos;', '&quot;', '&lt;', '&gt;'), str_replace($forbidden_chars, '', $string));
}