HTML实体符号被用作实现保留字符(reserved characters)或者表达键盘无法输入的一些常用字符。在大多数浏览器中默认的字符集为ISO-8859-1。HTML实体符号我们在网页设计中经常用到。
例如:
字符 实体名称 实体编号 描述 & & & and符号,与 " " " 引号 © © © 版权标志 ® ® » 注册标志 ™ ™ ™ 商标标志 “ “ “ 左双引号 ” ” ” 右双引号 ‘ ‘ ‘ 做单引号 ’ ’ ’ 右单引号
因工作需要,编写了一个HTML实体编号与非ASCII字符串相互转换类,代码如下:
HtmlEntitie.class.php
<?php/**
* HTML实体编号与非ASCII字符串相互转换类
* Date: 2016-09-07
* Author: fdipzone
* Ver: 1.0
*
* Func:
* public encode 字符串转为HTML实体编号
* public decode HTML实体编号转为字符串
* private _convertToHtmlEntities 转换为HTML实体编号处理
*/class HtmlEntitie{ // class start
public static $_encoding = 'UTF-8'; /**
* 字符串转为HTML实体编号
* @param String $str 字符串
* @param String $encoding 编码
* @return String
*/
public static function encode($str, $encoding='UTF-8'){
self::$_encoding = $encoding; return preg_replace_callback('|[^\x00-\x7F]+|', array(__CLASS__, '_convertToHtmlEntities'), $str);
} /**
* HTML实体编号转为字符串
* @param String $str HTML实体编号字符串
* @param String $encoding 编码
* @return String
*/
public static function decode($str, $encoding='UTF-8'){
return html_entity_decode($str, null, $encoding);
} /**
* 转换为HTML实体编号处理
* @param Mixed $data 待处理的数据
* @param String
*/
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);
}
}
} // class end?>demo.php
<?phprequire '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>';// 字符串转为HTML实体编号$cstr = HtmlEntitie::encode($str);echo '字符串转为HTML实体编号'.PHP_EOL;echo $cstr.PHP_EOL.PHP_EOL;// HTML实体编号转为字符串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>
两种都可以在浏览器正常显示,如下图:

本文讲解了php 实现HTML实体编号与非ASCII字符串相互转换类的相关知识,更多相关内容请关注php中文网。
相关推荐:
php 根据自增id创建唯一编号类
关于mysql 查看当前使用的配置文件my.cnf的方法讲解
以上就是php 实现HTML实体编号与非ASCII字符串相互转换类的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号