首页 >后端开发 >php教程 >php html实体字符的转换

php html实体字符的转换

WBOY
WBOY原创
2016-06-23 13:50:12995浏览

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('é');

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn