我即将解决这个问题。如果有人有任何解决方案。 我有一个html字符串
$html = '<div id="main">What is going on </div><div>یہاں
تو کوئی ہ</div>
<span>Some More Text <good></span>;
这是具有html实体+英文字符+ unicode字符的数字符号的混合html字符串。 我想只将unicode字符的数字符号转换为实际的unicode字符值。还有我不想丢失的用户格式。
我想要以下输出
$html = '<div id="main">What is going on </div><div>‘۔سلطان محمود نے گاڑی روکتے ہوئے</div>
<span>Some More Text <good></span>;
我用过
html_entity_decode($html, ENT_COMPAT, 'utf-8');
但这也会将<
转换为<
和>
转换为我不想要的>
。
任何其他解决方案??
注意:我并不是说我的网页上没有正确显示unicode字符,它们显示得很好。因为网页呈现数字符号并显示为真正的unicode字符。但是我也想在网页后面加上actaul unicode字符。
答案 0 :(得分:1)
尝试使用带有html_entity_decode的preg_preplace_callback作为回调。
$decode_single_entity = function ($matches) {
return html_entity_decode($matches[0], ENT_COMPAT, 'utf-8');
};
$string = preg_replace_callback('/&#\d+;/', $decode_single_entity, $html);