/**
* Подготовка текста в соответствии с требованиями Яндекса
* Запрещены любые html-тэги. Стандарт XML не допускает использования в текстовых данных
* непечатаемых символов с ASCII-кодами в диапазоне значений от 0 до 31 (за исключением
* символов с кодами 9, 10, 13 - табуляция, перевод строки, возврат каретки). Также этот
* стандарт требует обязательной замены некоторых символов на эквивалентные им символьные
* примитивы.
* @param string $text
* @return string
*/
function ymlTextPrepare($text)
{
$text = htmlspecialchars_decode(trim($text));
$text = strip_tags($text);
$search = array('"', '&', '>', '<', '\'');
$replace = array('"', '&', '>', '<', ''');
$text = str_replace($search, $replace, $text);
$text = preg_replace('#[\x00-\x08\x0B-\x0C\x0E-\x1F]+#is', ' ', $text);
return trim($text);
}
И ещё...Элементы <description> или <name> могут содержать текст длиной не более 255 символов. Если длина описания выходит за пределы допустимого значения, то текст обрезается и в конце ставится многоточие.