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 相关文章推荐
真正根据utf8编码的规律来进行截取字符串的函数(utf8版sub_str )
Oct 24 PHP
PHP 简易输出CSV表格文件的方法详解
Jun 20 PHP
PHP面向对象之后期静态绑定功能介绍
May 18 PHP
功能强大的PHP图片处理类(水印、透明度、旋转)
Oct 21 PHP
php并发加锁示例
Oct 17 PHP
什么是PHP文件?如何打开PHP文件?
Jun 27 PHP
PHP 文件锁与进程锁的使用示例
Aug 07 PHP
详解cookie验证的php应用的一种SSO解决办法
Oct 20 PHP
PHP中register_shutdown_function函数的基础介绍与用法详解
Nov 28 PHP
php7新特性的理解和比较总结
Apr 14 PHP
Laravel Reponse响应客户端示例详解
Sep 03 PHP
YII2 全局异常处理深入讲解
Mar 24 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
YII模块实现绑定二级域名的方法
2014/07/09 PHP
教你如何开启shopnc b2b2c 伪静态
2014/10/21 PHP
PHP如何实现跨域
2016/05/30 PHP
PHP长连接实现与使用方法详解
2018/02/11 PHP
PHP实现数组转JSon和JSon转数组的方法示例
2018/06/14 PHP
Javascript 页面模板化很多人没有使用过的方法
2012/06/05 Javascript
jQuery使用prepend()方法在元素前添加内容用法实例
2015/03/26 Javascript
信息页文内画中画广告js实现代码(文中加载广告方式)
2016/01/03 Javascript
JS显示日历和天气的方法
2016/03/01 Javascript
JS使用cookie设置样式的方法
2016/06/30 Javascript
ECMAScript6 新特性范例大全
2017/03/24 Javascript
作为老司机使用 React 总结的 11 个经验教训
2017/04/08 Javascript
JavaScript实现简单生成随机颜色的方法
2017/09/21 Javascript
关于HTTP传输中gzip压缩的秘密探索分析
2018/01/12 Javascript
vue中在vuex的actions中请求数据实例
2019/11/08 Javascript
element中的$confirm的使用
2020/04/26 Javascript
python实现在windows下操作word的方法
2015/04/28 Python
Python扫描IP段查看指定端口是否开放的方法
2015/06/09 Python
python异常和文件处理机制详解
2016/07/19 Python
python方向键控制上下左右代码
2018/01/20 Python
python字符串常用方法
2018/06/14 Python
对Python3 pyc 文件的使用详解
2019/02/16 Python
解决Python安装时报缺少DLL问题【两种解决方法】
2019/07/15 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
2019/11/15 Python
详解pandas赋值失败问题解决
2020/11/29 Python
HTML5注册页面示例代码
2014/03/27 HTML / CSS
宝拉珍选美国官网:Paula’s Choice美国
2018/01/07 全球购物
意大利高端时尚买手店:Stefania Mode
2018/03/01 全球购物
Sephora丝芙兰马来西亚官方网站:国际化妆品购物
2018/03/15 全球购物
北大青鸟学生求职信
2013/09/24 职场文书
表演方阵解说词
2014/02/08 职场文书
高等教育学自荐书范文
2014/02/10 职场文书
毕业生自荐信格式
2014/03/07 职场文书
医德考评自我评价
2014/09/14 职场文书
乡镇遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
异地恋情人节寄语
2015/02/28 职场文书