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 相关文章推荐
MySQL数据库转移,access,sql server 转 MySQL 的图文教程
Sep 02 PHP
php面向对象全攻略 (二) 实例化对象 使用对象成员
Sep 30 PHP
php ftp文件上传函数(基础版)
Jun 03 PHP
php自动加载的两种实现方法
Jun 21 PHP
PHP中PDO的错误处理
Sep 04 PHP
20个2014年最优秀的PHP框架回顾
Oct 22 PHP
php自定义hash函数实例
May 05 PHP
PHP中phar包的使用教程
Jun 14 PHP
php从数据库读取数据,并以json格式返回数据的方法
Aug 21 PHP
让Laravel API永远返回JSON格式响应的方法示例
Sep 05 PHP
小程序微信支付功能配置方法示例详解【基于thinkPHP】
May 05 PHP
浅谈thinkphp的nginx配置,以及重写隐藏index.php入口文件方法
Oct 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
资料注册后发信小技巧
2006/10/09 PHP
编译php 5.2.14+fpm+memcached(具体操作详解)
2013/06/18 PHP
php实现的中秋博饼游戏之绘制骰子图案功能示例
2017/11/06 PHP
PHP实现的最大正向匹配算法示例
2017/12/19 PHP
PHP基于curl实现模拟微信浏览器打开微信链接的方法示例
2019/02/15 PHP
js利用与或运算符优先级实现if else条件判断表达式
2010/04/15 Javascript
基于jQuery实现左右div自适应高度完全相同的代码
2012/08/09 Javascript
原生js实现查找/添加/删除/指定元素的class
2013/04/12 Javascript
fmt:formatDate的输出格式详解
2014/01/09 Javascript
javascript中expression的用法整理
2014/05/13 Javascript
JS、CSS以及img对DOMContentLoaded事件的影响
2014/08/12 Javascript
用js动态添加html元素,以及属性的简单实例
2016/07/19 Javascript
浅谈Angular的$q, defer, promise
2016/12/20 Javascript
详解JS对象封装的常用方式
2016/12/30 Javascript
vue引入ueditor及node后台配置详解
2018/01/03 Javascript
Vue.js+Layer表格数据绑定与实现更新的实例
2018/03/07 Javascript
使用Javascript简单计算器
2018/11/17 Javascript
angular4应用中输入的最小值和最大值的方法
2019/05/17 Javascript
浅谈关于vue中scss公用的解决方案
2019/12/02 Javascript
vue 导出文件,携带请求头token操作
2020/09/10 Javascript
vue3.0 的 Composition API 的使用示例
2020/10/26 Javascript
Vue实现简单计算器
2021/01/20 Vue.js
python实现电子词典
2020/04/23 Python
python读写json文件的简单实现
2017/04/11 Python
Python文本特征抽取与向量化算法学习
2017/12/22 Python
Python基础之变量基本用法与进阶详解
2020/01/03 Python
python tkiner实现 一个小小的图片翻页功能的示例代码
2020/06/24 Python
基于Python爬取fofa网页端数据过程解析
2020/07/13 Python
新西兰最大的品牌运动鞋购物网站:Platypus NZ
2017/10/27 全球购物
与UNIX有关的几个名词
2015/09/17 面试题
个人自我评价分享
2013/12/20 职场文书
社会治安综合治理管理责任书
2014/04/16 职场文书
医院合作协议书
2014/08/19 职场文书
法人授权委托书样本
2014/09/19 职场文书
《唯一的听众》教学反思
2016/02/18 职场文书
mysql如何配置白名单访问
2021/06/30 MySQL