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 存储文本换行实现方法
Jan 05 PHP
生成ubuntu自动切换壁纸xml文件的php代码
Jul 17 PHP
PHP和JavaScrip分别获取关联数组的键值示例代码
Sep 16 PHP
PHP OPP机制和模式简介(抽象类、接口和契约式编程)
Jun 09 PHP
PHP5.5和之前的版本empty函数的不同之处
Jun 13 PHP
PHP函数实现分页含文本分页和数字分页
Oct 23 PHP
PHP利用APC模块实现文件上传进度条的方法
Jan 26 PHP
大家都应该掌握的PHP关联数组使用技巧
Dec 25 PHP
WordPress的主题编写中获取头部模板和底部模板
Dec 28 PHP
PHP GD库相关图像生成和处理函数小结
Sep 30 PHP
PHP实现APP微信支付的实例讲解
Feb 10 PHP
php基于协程实现异步的方法分析
Jul 17 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
一个更简单的无限级分类菜单代码
2007/01/16 PHP
PHPWind与Discuz截取字符函数substrs与cutstr性能比较
2011/12/05 PHP
全面解析PHP验证码的实现原理 附php验证码小案例
2016/08/17 PHP
PHP与jquery实时显示网站在线人数实例详解
2016/12/02 PHP
php实现微信公众号创建自定义菜单功能的实例代码
2019/06/11 PHP
DIY jquery plugin - tabs标签切换实现代码
2010/12/11 Javascript
js变量、作用域及内存详解
2014/09/23 Javascript
JavaScript 作用域链解析
2014/11/13 Javascript
使用百度地图api实现根据地址查询经纬度
2014/12/11 Javascript
JavaScript判断浏览器类型的方法
2015/02/10 Javascript
jQuery使用hide方法隐藏页面上指定元素的方法
2015/03/30 Javascript
javascript 继承学习心得总结
2016/03/17 Javascript
详解JavaScript中this的指向问题
2017/01/20 Javascript
理解javascript async的用法
2017/08/22 Javascript
React教程之封装一个Portal可复用组件的方法
2018/01/02 Javascript
详解Typescript 内置的模块导入兼容方式
2020/05/31 Javascript
解决pycharm运行时interpreter为空的问题
2018/10/29 Python
利用ctypes获取numpy数组的指针方法
2019/02/12 Python
python交互模式下输入换行/输入多行命令的方法
2019/07/02 Python
python GUI库图形界面开发之PyQt5窗口类QMainWindow详细使用方法
2020/02/26 Python
用pandas划分数据集实现训练集和测试集
2020/07/20 Python
python3 re返回形式总结
2020/11/20 Python
利用CSS3实现动态的二级三级菜单效果实例源码
2017/01/04 HTML / CSS
CSS+jQuery+PHP+MySQL实现的在线答题功能
2015/04/25 HTML / CSS
HTML5 Canvas 旋转风车绘制
2017/08/18 HTML / CSS
捷克玩具商店:Bambule
2019/02/23 全球购物
意大利奢侈品零售商:ilDuomo Novara
2019/09/11 全球购物
网络工程师个人的自我评价范文
2013/10/01 职场文书
教师演讲稿范文
2014/01/08 职场文书
我心目中的好老师活动方案
2014/08/19 职场文书
2014年公务员退休工资改革方案
2014/10/01 职场文书
2014年基层党建工作总结
2014/11/11 职场文书
沈阳故宫导游词
2015/01/31 职场文书
暂停营业通知
2015/04/25 职场文书
2015年社区科普工作总结
2015/05/13 职场文书
详解OpenCV获取高动态范围(HDR)成像
2022/04/29 Python