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 相关文章推荐
截获网站title标签之家内容的例子
Oct 09 PHP
推荐Discuz!5的PHP代码高亮显示与实现可运行代码
Mar 15 PHP
php mysql Errcode: 28 终极解决方法
Jul 01 PHP
PHP 字符截取 解决中文的截取问题,不用mb系列
Sep 29 PHP
php GeoIP的使用教程
Mar 09 PHP
关于php操作mysql执行数据库查询的一些常用操作汇总
Jun 24 PHP
php多层数组与对象的转换实例代码
Aug 05 PHP
PHP+Mysql+jQuery中国地图区域数据统计实例讲解
Oct 10 PHP
学习php设计模式 php实现装饰器模式(decorator)
Dec 07 PHP
php中分页及SqlHelper类用法实例
Jan 12 PHP
php empty 函数判断结果为空但实际值却为非空的原因解析
May 28 PHP
详解phpstorm2020最新破解方法
Sep 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
PHP生成月历代码
2007/06/14 PHP
PHP传参之传值与传址的区别
2015/04/24 PHP
事件模型在各浏览器中存在差异
2010/10/20 Javascript
JavaScript继承方式实例
2010/10/29 Javascript
jQuery setTimeout()函数使用方法
2013/04/07 Javascript
javascript中的取反再取反~~没有意义
2014/04/06 Javascript
上传图片预览JS脚本 Input file图片预览的实现示例
2014/10/23 Javascript
【JS+CSS3】实现带预览图幻灯片效果的示例代码
2016/03/17 Javascript
JS修改地址栏参数实例代码
2016/06/14 Javascript
Javascript中prototype的使用详解
2016/06/18 Javascript
jQuery获取元素父节点的方法
2016/06/21 Javascript
jQuery查找节点方法完整实例
2016/09/13 Javascript
简单实现js选项卡切换效果
2017/02/09 Javascript
Jquery获取radio选中的值
2017/05/05 jQuery
angularjs中ng-bind-html的用法总结
2017/05/23 Javascript
详解Vue.js v-for不支持IE9的解决方法
2018/12/29 Javascript
jQuery选择器之基本过滤选择器用法实例分析
2019/02/19 jQuery
基于PHP pthreads实现多线程代码实例
2020/06/24 Javascript
用Python编写web API的教程
2015/04/30 Python
Django中更新多个对象数据与删除对象的方法
2015/07/17 Python
Python 专题四 文件基础知识
2017/03/20 Python
Python整型运算之布尔型、标准整型、长整型操作示例
2017/07/21 Python
浅谈利用numpy对矩阵进行归一化处理的方法
2018/07/11 Python
Python tkinter的grid布局及Text动态显示方法
2018/10/11 Python
python 字符串常用函数详解
2019/09/11 Python
python实现的发邮件功能示例
2019/09/11 Python
Python datetime 如何处理时区信息
2020/09/02 Python
HTML5 标准将把互联网视频扔回到黑暗时代
2010/02/10 HTML / CSS
电脑专业个人求职信范文
2014/02/04 职场文书
趣味体育活动方案
2014/02/08 职场文书
领导干部个人对照检查材料(群众路线)
2014/09/26 职场文书
欢迎家长标语
2014/10/08 职场文书
2015国际残疾人日活动总结
2015/03/24 职场文书
2016年庆祝六一儿童节活动总结
2016/04/06 职场文书
2019年干货:自我鉴定
2019/03/25 职场文书
创业项目大全(适合在家创业的项目)
2019/08/15 职场文书