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下编码转换函数mb_convert_encoding与iconv的使用说明
Dec 16 PHP
PHP 缓存实现代码及详细注释
May 16 PHP
PHP文件打开、关闭、写入的判断与执行代码
May 24 PHP
PHP中获取变量的变量名的一段代码的bug分析
Jul 07 PHP
解析关于wamp启动是80端口被占用的问题
Jun 21 PHP
PHP中strlen()和mb_strlen()的区别浅析
Jun 19 PHP
PHP过滤黑名单关键字的方法
Dec 01 PHP
简单谈谈favicon
Jun 10 PHP
php导出csv文件,可导出前导0实例代码
Nov 16 PHP
php 实现Hash表功能实例详解
Nov 29 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
Jul 19 PHP
Laravel框架实现多数据库连接操作详解
Jul 12 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中调用其他系统http接口的方法说明
2014/02/28 PHP
CI框架中zip类应用示例
2014/06/17 PHP
php按单词截取字符串的方法
2015/04/07 PHP
php $_SESSION会员登录实例分享
2021/01/19 PHP
mac os快速切换多个PHP版本的方法
2017/03/07 PHP
实现laravel 插入操作日志到数据库的方法
2019/10/11 PHP
IE8 下的Js错误HTML Parsing Error...
2009/08/14 Javascript
jquery实现居中弹出层代码
2010/08/25 Javascript
解析Jquery中如何把一段html代码动态写入到DIV中(实例说明)
2013/07/09 Javascript
JavaScript+CSS控制打印格式示例介绍
2014/01/07 Javascript
javascript闭包的理解
2015/04/01 Javascript
javascript中scrollTop详解
2015/04/13 Javascript
详解vue-cli中配置sass
2017/06/21 Javascript
p5.js入门教程之平滑过渡(Easing)
2018/03/16 Javascript
微信小程序之批量上传并压缩图片的实例代码
2018/07/05 Javascript
vue实现鼠标移过出现下拉二级菜单功能
2019/12/12 Javascript
Python实现栈的方法
2015/05/26 Python
Python增量循环删除MySQL表数据的方法
2016/09/23 Python
django rest framework之请求与响应(详解)
2017/11/06 Python
python+matplotlib绘制简单的海豚(顶点和节点的操作)
2018/01/02 Python
python操作excel的包(openpyxl、xlsxwriter)
2018/06/11 Python
Django实现分页功能
2018/07/02 Python
Python WEB应用部署的实现方法
2019/01/02 Python
Python实现点阵字体读取与转换的方法
2019/01/29 Python
Python如何将将模块分割成多个文件
2020/08/04 Python
Python用K-means聚类算法进行客户分群的实现
2020/08/23 Python
如何在 Matplotlib 中更改绘图背景的实现
2020/11/26 Python
Merrell迈乐澳大利亚网站:购买户外登山鞋
2017/05/28 全球购物
初入社会应届生求职信
2013/11/18 职场文书
幼儿园园长岗位职责
2013/11/26 职场文书
劳资专员岗位职责
2013/12/27 职场文书
个人授权委托书模板
2014/09/14 职场文书
长江七号观后感
2015/06/11 职场文书
python之json文件转xml文件案例讲解
2021/08/07 Python
详解JSON.parse和JSON.stringify用法
2022/02/18 Javascript
python获取字符串中的email
2022/03/31 Python