Я сейчас экспериментирую с доставкой XHTML5.В настоящее время я поставляю XHTML 1.1 Strict на странице, над которой я работаю.Это я для способных браузеров.Для тех, кто не принимает данные в кодировке XML, я вернусь к строгому HTML4.1.
При экспериментировании с использованием HTML5 для любого из них, при доставке в формате HTML5 все работает более или менее, как ожидалось.Первая проблема, с которой я сталкиваюсь при доставке в формате XHTML5, связана с сущностями HTML.FF4 sais ü
является неопределенной сущностью.Поскольку нет HTML5 DTD.
Я прочитал, что HTML5 wiki в настоящее время рекомендует:
Не использовать ссылки на сущности в XHTML (за исключением 5 предопределенныхсущности: &
, <
, >
, "
и '
)
Мне нужно <
, >
в определенных местах.Поэтому мой вопрос в том, как лучше всего в PHP декодировать все, кроме пяти названных выше объектов.html_entity_decode()
декодирует их все, так есть ли разумный способ исключить некоторые из них?
ОБНОВЛЕНИЕ:
Я пошел с простым подходом замены / замены длямомент, так что если нет действительно элегантного способа, вопрос решен достаточно для моих неотложных нужд.
function non_html5_entity_decode($string)
{
$string = str_replace("&",'@@@AMP',
str_replace("'",'@@@APOS',
str_replace("<",'@@@LT',
str_replace(">",'@@@GT',
str_replace(""",'@@@QUOT',$string)))));
$string = html_entity_decode($string);
$string = str_replace('@@@AMP',"&",
str_replace('@@@APOS',"'",
str_replace('@@@LT',"<",
str_replace('@@@GT',">",
str_replace('@@@QUOT',""",$string)))));
return $string;
}