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 实现进制转换(二进制、八进制、十六进制)互相转换实现代码
Oct 22 PHP
php+mysql查询优化简单实例
Jan 13 PHP
PHP中iconv函数转码时截断字符问题的解决方法
Jan 21 PHP
php中判断数组相等的方法以及数组运算符介绍
Mar 30 PHP
php遍历CSV类实例
Apr 14 PHP
PHP文件操作之获取目录下文件与计算相对路径的方法
Jan 08 PHP
php parse_str() 函数的定义和用法
May 23 PHP
Linux平台php命令行程序处理管道数据的方法
Nov 10 PHP
php获取ip及网址的简单方法(必看)
Apr 01 PHP
PHP在弹框中获取foreach中遍历的id值并传递给地址栏
Jun 13 PHP
Laravel使用模型实现like模糊查询的例子
Oct 24 PHP
php中pcntl_fork详解
Apr 01 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 反向排序和随机排序代码
2010/06/30 PHP
ThinkPHP 防止表单重复提交的方法
2011/08/08 PHP
php数组函数序列之rsort() - 对数组的元素值进行降序排序
2011/11/02 PHP
浅谈php正则表达式中的非贪婪模式匹配的使用
2014/11/25 PHP
实例详解PHP中html word 互转的方法
2016/01/28 PHP
PHP中如何判断exec函数执行成功?
2016/08/04 PHP
CodeIgniter框架验证码类库文件与用法示例
2017/03/18 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
2018/02/10 PHP
Prototype最新版(1.5 rc2)使用指南(1)
2007/01/10 Javascript
JavaScript获得选中文本内容的方法
2008/12/02 Javascript
jquery 插件之仿“卓越亚马逊”首页弹出菜单效果
2008/12/25 Javascript
javascript对象之内置对象Math使用方法
2010/04/16 Javascript
让JavaScript拥有类似Lambda表达式编程能力的方法
2010/09/12 Javascript
基于jquery的鼠标拖动效果代码
2012/05/30 Javascript
Javascript图像处理—亮度对比度应用案例
2013/01/03 Javascript
JS获得QQ号码的昵称,头像,生日的简单实例
2013/12/04 Javascript
jQuery动态星级评分效果实现方法
2015/08/06 Javascript
jQuery实现表格行和列的动态添加与删除方法【测试可用】
2016/08/01 Javascript
浅谈vue自定义全局组件并通过全局方法 Vue.use() 使用该组件
2017/12/07 Javascript
VUEJS 2.0 子组件访问/调用父组件的实例
2018/02/10 Javascript
React 源码中的依赖注入方法
2018/11/07 Javascript
记录vue做微信自定义分享的一些问题
2019/09/12 Javascript
[57:28]2018DOTA2亚洲邀请赛 4.6 淘汰赛 TNC vs Liquid 第一场
2018/04/10 DOTA
Python入门篇之字典
2014/10/17 Python
在Django框架中编写Context处理器的方法
2015/07/20 Python
python中将zip压缩包转为gz.tar的方法
2018/10/18 Python
python中property和setter装饰器用法
2019/12/19 Python
将matplotlib绘图嵌入pyqt的方法示例
2020/01/08 Python
Python参数传递对象的引用原理解析
2020/05/22 Python
Bally澳大利亚官网:瑞士奢侈品牌
2018/11/01 全球购物
最便宜促销价格订机票:Airpaz(总部设在印尼,支持中文)
2018/11/13 全球购物
乌克兰巴士票购买网站:inBus
2021/03/12 全球购物
工程测量与监理专业应届生求职信
2013/11/27 职场文书
公司捐款倡议书
2014/05/14 职场文书
小学家庭教育心得体会
2016/01/14 职场文书
《原神》新角色演示“神里绫人:林隐泓洄” 宠妹狂魔
2022/04/03 其他游戏