HTML实体符号被用作实现保留字符(reserved characters)或者表达键盘无法输入的一些常用字符。在大多数浏览器中默认的字符集为ISO-8859-1。HTML实体符号我们在网页设计中经常用到。
例如:
字符 实体名称 实体编号 描述
& & & and符号,与
" " " 引号
© © © 版权标志
® ® » 注册标志
™ ™ ™ 商标标志
“ “ “ 左双引号
” ” ” 右双引号
‘ ‘ ‘ 做单引号
’ ’ ’ 右单引号
因工作需要,编写了一个HTML实体编号与非ASCII字符串相互转换类,代码如下:
HtmlEntitie.class.php
<?php
class HtmlEntitie{
public static $_encoding = 'UTF-8';
public static function encode($str, $encoding='UTF-8'){
self::$_encoding = $encoding;
return preg_replace_callback('|[^\x00-\x7F]+|', array(__CLASS__, '_convertToHtmlEntities'), $str);
}
public static function decode($str, $encoding='UTF-8'){
return html_entity_decode($str, null, $encoding);
}
private static function _convertToHtmlEntities($data){
if(is_array($data)){
$chars = str_split(iconv(self::$_encoding, 'UCS-2BE', $data[0]), 2);
$chars = array_map(array(__CLASS__, __FUNCTION__), $chars);
return implode("", $chars);
}else{
$code = hexdec(sprintf("%02s%02s;", dechex(ord($data {0})), dechex(ord($data {1})) ));
return sprintf("&#%s;", $code);
}
}
}
?>
demo.php
<?php
require 'HtmlEntitie.class.php';
$str = '<p>更多资讯可关注本人微信号:fdipzone-idea</p><p><img border="0" src="https://img-blog.csdn.net/20141224160911852" width="180" height="180" title="破晓领域"></p><p>您的支持是我最大的动力,谢谢!</p>';
$cstr = HtmlEntitie::encode($str);
echo '字符串转为HTML实体编号'.PHP_EOL;
echo $cstr.PHP_EOL.PHP_EOL;
echo 'HTML实体编号转为字符串'.PHP_EOL;
echo HtmlEntitie::decode($cstr);
?>
输出:
字符串转为HTML实体编号
<p>更多资讯可关注本人微信号:fdipzone-idea</p><p><img border="0" src="https://img-blog.csdn.net/20141224160911852" width="180" height="180" title="破晓领域"></p><p>您的支持是我最大的动力,谢谢!</p>
HTML实体编号转为字符串
<p>更多资讯可关注本人微信号:fdipzone-idea</p><p><img border="0" src="https://img-blog.csdn.net/20141224160911852" width="180" height="180" title="破晓领域"></p><p>您的支持是我最大的动力,谢谢!</p>
两种都可以在浏览器正常显示,如下图:
源码下载地址:点击查看
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)