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 相关文章推荐
提取HTML标签
Oct 09 PHP
php桌面中心(二) 数据库写入
Mar 11 PHP
php magic_quotes_gpc的一点认识与分析
Aug 18 PHP
phpMyAdmin 安装及问题总结
May 28 PHP
php strstr查找字符串中是否包含某些字符的查找函数
Jun 03 PHP
五款常用mysql slow log分析工具的比较分析
May 22 PHP
php excel reader读取excel内容存入数据库实现代码
Dec 06 PHP
解析coreseek for sphinx的使用
Jun 21 PHP
关于php支持分块与断点续传文件下载功能代码
May 09 PHP
thinkphp的URL路由规则与配置实例
Nov 26 PHP
PHP大文件分割上传 PHP分片上传
Aug 28 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
Dec 30 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判断类是否存在函数class_exists用法分析
2014/11/14 PHP
PHP向socket服务器收发数据的方法
2015/01/24 PHP
php实现比较两个字符串日期大小的方法
2015/05/12 PHP
PHP两种实现无级递归分类的方法
2017/03/02 PHP
PHP的new static和new self的区别与使用
2019/11/27 PHP
一直复略了的一个问题,关于表单重复提交
2007/02/15 Javascript
用JavaScript实现仿Windows关机效果
2007/03/10 Javascript
input 高级限制级用法
2009/03/26 Javascript
JQuery跨Iframe选择实现代码
2010/08/19 Javascript
jquery实现下拉菜单的二级联动利用json对象从DB取值显示联动
2014/03/27 Javascript
javascript HTML5 Canvas实现圆盘抽奖功能
2016/04/11 Javascript
基于AGS JS开发自定义贴图图层
2017/03/31 Javascript
JavaScript中undefined和null的区别
2017/05/03 Javascript
详解在Angular项目中添加插件ng-bootstrap
2017/07/04 Javascript
vue3.0 CLI - 2.2 - 组件 home.vue 的初步改造
2018/09/14 Javascript
在JS循环中使用async/await的方法
2018/10/12 Javascript
jQuery实现文本显示一段时间后隐藏的方法分析
2019/06/20 jQuery
nodeJs的安装与npm全局环境变量的配置详解
2020/01/06 NodeJs
vue.js中使用微信扫一扫解决invalid signature问题(完美解决)
2020/04/11 Javascript
深入webpack打包原理及loader和plugin的实现
2020/05/06 Javascript
keep-Alive搭配vue-router实现缓存页面效果的示例代码
2020/06/24 Javascript
python在linux中输出带颜色的文字的方法
2014/06/19 Python
python实现的守护进程(Daemon)用法实例
2015/06/02 Python
Python 登录网站详解及实例
2017/04/11 Python
Flask框架踩坑之ajax跨域请求实现
2019/02/22 Python
Python HTML解析模块HTMLParser用法分析【爬虫工具】
2019/04/05 Python
Python中的十大图像处理工具(小结)
2019/06/10 Python
django的ORM操作 删除和编辑实现详解
2019/07/24 Python
python中get和post有什么区别
2020/06/19 Python
Python抓包并解析json爬虫的完整实例代码
2020/11/03 Python
Django数据库迁移常见使用方法
2020/11/12 Python
仓库管理专业个人的自我评价
2013/12/30 职场文书
无毒社区工作方案
2014/05/23 职场文书
2014年党员评议表自我评价
2014/09/27 职场文书
2014年党建工作总结
2014/11/11 职场文书
2014年度思想工作总结
2014/11/27 职场文书