欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php html实体字符的转换

程序员文章站 2022-06-10 17:53:25
...
php有什么函数能把html实体符号é转换成é?

php那几个函数都试过了,不行呀。


回复讨论(解决方案)

不知道你是如何做的

先给你 php 支持的 HTML 实体列表
foreach(get_html_translation_table(HTML_ENTITIES) as $k=>$v) {
echo ord($k) . ' => ' . $v . PHP_EOL;
}

然后你自己看着办

同意楼上

看样子是支持这个符号的,弱弱的问,应该用哪个函数转换?

不知道你是如何做的

先给你 php 支持的 HTML 实体列表
foreach(get_html_translation_table(HTML_ENTITIES) as $k=>$v) {
echo ord($k) . ' => ' . $v . PHP_EOL;
}

然后你自己看着办

echo	mb_convert_encoding("é", "UTF-8", "HTML-ENTITIES"); //é

很好,那请问下,如果一篇文章有很多这样的字符需要转换呢?总不能一个一个换吧,有无更加简单的方法?

PHP code

echo mb_convert_encoding("é", "UTF-8", "HTML-ENTITIES");
//é

难道要这样吗?

foreach(get_html_translation_table(HTML_ENTITIES) as $k=>$v) {
$str = str_replace($v, mb_convert_encoding($v, "GBK", "HTML-ENTITIES"), $str);
}


很好,那请问下,如果一篇文章有很多这样的字符需要转换呢?总不能一个一个换吧,有无更加简单的方法?引用 4 楼 的回复:

PHP code

echo mb_convert_encoding("é", "UTF-8", "HTML-ENTITIES");
//é

html_entity_decode

$text = mb_convert_encoding($text, "UTF-8", "HTML-ENTITIES");

还是你牛。解决困扰我许久的问题。今晚可以睡着了。

$text = mb_convert_encoding($text, "UTF-8", "HTML-ENTITIES");

还是有问题啊,那些字符是转干净了。但是空格之类的普通字符就不行了。
比如
$str = '班别 “√”';

$str = mb_convert_encoding($str, "GBK", "HTML-ENTITIES");
echo $str;

$text = mb_convert_encoding($text, "UTF-8", "HTML-ENTITIES");

html_entity_decode('é');