Я читаю документацию для создания фида подкаст suitable for iTunes, а секция Common Mistakes говорит:PHP функции, чтобы включить произвольное «описание» в действительные данные XML для подачи подкаста
Использование HTML именованных символьные сущностей.
<! — illegal xml — >
<copyright>© 2005 John Doe</copyright>
<! — valid xml — >
<copyright>© 2005 John Doe</copyright>
В отличие от HTML, XML поддерживает только пять "именованные символьные сущности":
character name xml
& ampersand &
< less-than sign <
> greater-than sign >
’ apostrophe '
" quotation "
Пять персонажей выше единственные символы, которые требуют экранирования в XML , Все остальные символы могут быть введены непосредственно в редакторе, который поддерживает UTF-8. Вы можете также использовать числовые ссылки на символы, которые задающие Unicode для символа, , например:
character name xml
© copyright sign ©
℗ sound recording copyright ℗
™ trade mark sign ™
Для дальнейшей ссылки см XML Character and EntityReferences.
Прямо сейчас я использую htmlentities()
под PHP5 и подача проверки и работы. Но из того, что я собираю, некоторые вещи, которые могут попасть в контент, могут стать объектами, которые сделают его более недействительным. Какая функция лучше всего использовать, чтобы гарантировать, что я не передаю плохие данные? Я параноик, что-то будет введено и получится сущность и разорвать фид - нужно ли использовать str_replace()
и заменить на названные объекты и оставить остальных в покое? Или я могу как-то использовать htmlspecialchars()
?
Итак, что является заменой на htmentities()
, что позволит убедиться, что ввод безопасен для описания, заголовков и т. Д. В RSS-канале подкаста?
Их спецификации конкретно сказать «секции CDATA настоятельно рекомендуется.» Вот и все.Если я использую 'mb_encode_numericentity' http://us3.php.net/mb_encode_numericentity, что я передаю как 2-й и 3-й параметры:' array $ convmap, string $ encoding'? Я предполагаю, что '$ encoding' будет 'UTF-8' – artlung
Я отредактировал ответ, чтобы ответить на ваши вопросы: p – Artefacto
Итак, похоже, что я продолжу и продолжаю работать' htmlentities() 'перед тем, как я запустил ваш' mb_convert_encoding() 'и' htmlspecialchars() 'then? Эти два вызова в основном «xml-ize» кодировки для соответствия, правда? – artlung