php实现HTML实体编号与非ASCII字符串相互转换类实例


Posted in PHP onNovember 02, 2016

HTML实体符号被用作实现保留字符(reserved characters)或者表达键盘无法输入的一些常用字符。在大多数浏览器中默认的字符集为ISO-8859-1。HTML实体符号我们在网页设计中经常用到。

例如:

php实现HTML实体编号与非ASCII字符串相互转换类实例

因工作需要,编写了一个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
?>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP写的求多项式导数的函数代码
Jul 04 PHP
php全排列递归算法代码
Oct 09 PHP
PHP连接MySQL查询结果中文显示乱码解决方法
Oct 25 PHP
用 Composer构建自己的 PHP 框架之使用 ORM
Oct 30 PHP
ThinkPHP实现ajax仿官网搜索功能实例
Dec 02 PHP
PHP计算百度地图两个GPS坐标之间距离的方法
Jan 09 PHP
WordPress开发中用于标题显示的相关函数使用解析
Jan 07 PHP
将PHP的session数据存储到数据库中的代码实例
Jun 24 PHP
PHP搭建大文件切割分块上传功能示例
Jan 04 PHP
详解Yii2 之 生成 URL 的方法
Jun 16 PHP
PHP测试框架PHPUnit组织测试操作示例
May 28 PHP
PHP让网站移动访问更加友好方法
Feb 14 PHP
php 使用redis锁限制并发访问类示例
Nov 02 #PHP
Android AsyncTack 异步任务实例详解
Nov 02 #PHP
php array_pop 删除数组最后一个元素实例
Nov 02 #PHP
PHP设置images目录不充许http访问的方法
Nov 01 #PHP
PHP递归获取目录内所有文件的实现方法
Nov 01 #PHP
php获得文件夹下所有文件的递归算法的简单实例
Nov 01 #PHP
ecshop适应在PHP7的修改方法解决报错的实现
Nov 01 #PHP
You might like
PHP设计模式之解释器模式的深入解析
2013/06/13 PHP
php使用反射插入对象示例分享
2014/03/11 PHP
php定期拉取数据对比方法实例
2019/09/22 PHP
基于jquery自定义图片热区效果
2012/07/21 Javascript
js中传递特殊字符(+,&amp;)的方法
2014/01/16 Javascript
ExtJS中设置下拉列表框不可编辑的方法
2014/05/07 Javascript
Jquery遍历Json数据的方法
2015/04/20 Javascript
浅析C/C++,Java,PHP,JavaScript,Json数组、对象赋值时最后一个元素后面是否可以带逗号
2016/03/22 Javascript
基于javascript实现九宫格大转盘效果
2020/05/28 Javascript
jQuery遍历节点树方法分析
2016/09/08 Javascript
深入浅析vue组件间事件传递
2017/12/29 Javascript
100行代码实现一个vue分页组功能
2018/11/06 Javascript
微信小程序发布新版本时自动提示用户更新的方法
2019/06/07 Javascript
javascript实现日历效果
2019/06/17 Javascript
Vue发布项目实例讲解
2019/07/17 Javascript
微信小程序封装分享与分销功能过程解析
2019/08/13 Javascript
详解Vue 换肤方案验证
2019/08/28 Javascript
jquery选择器和属性对象的操作实例分析
2020/01/10 jQuery
微信小程序云函数添加数据到数据库的方法
2020/03/04 Javascript
UEditor 自定义图片视频尺寸校验功能的实现代码
2020/10/20 Javascript
Python多进程并发(multiprocessing)用法实例详解
2015/06/02 Python
Python利用Beautiful Soup模块修改内容方法示例
2017/03/27 Python
使用Python 正则匹配两个特定字符之间的字符方法
2018/12/24 Python
Python3从零开始搭建一个语音对话机器人的实现
2019/08/23 Python
Python2比较当前图片跟图库哪个图片相似的方法示例
2019/09/28 Python
python通过链接抓取网站详解
2019/11/20 Python
Smashbox英国官网:美国知名彩妆品牌
2017/11/13 全球购物
Skyscanner阿联酋:全球领先的旅游搜索平台
2017/11/25 全球购物
IRO美国官网:法国服装品牌
2018/03/06 全球购物
简历中个人求职的自我评价模板
2013/11/29 职场文书
乔迁宴答谢词
2014/01/21 职场文书
社区庆八一活动方案
2014/02/02 职场文书
个性与发展自我评价
2014/02/11 职场文书
宣传口号大全
2014/06/16 职场文书
未受刑事制裁公证证明
2014/09/20 职场文书
夫妻分居协议书范文
2014/11/26 职场文书