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 相关文章推荐
简单介绍下 PHP5 中引入的 MYSQLI的用途
Mar 19 PHP
vs中通过剪切板循环来循环粘贴不同内容
Apr 30 PHP
php float不四舍五入截取浮点型字符串方法总结
Oct 28 PHP
浅谈php正则表达式中的非贪婪模式匹配的使用
Nov 25 PHP
PHP比你想象的好得多
Nov 27 PHP
ThinkPHP中redirect用法分析
Dec 05 PHP
PHP_SELF,SCRIPT_NAME,REQUEST_URI区别
Dec 24 PHP
PHP访问Google Search API的方法
Mar 05 PHP
PHP实现自动对图片进行滚动显示的方法
Mar 12 PHP
PHP学习笔记(一):基本语法之标记、空白、和注释
Apr 17 PHP
php自动识别文字编码并转换为目标编码的方法
Aug 08 PHP
thinkPHP5.0框架命名空间详解
Mar 18 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
Body是什么,该怎么喝出咖啡里的口感
2021/03/03 咖啡文化
十天学会php(2)
2006/10/09 PHP
php array_push()数组函数:将一个或多个单元压入数组的末尾(入栈)
2011/07/12 PHP
php中通过DirectoryIterator删除整个目录的方法
2015/03/13 PHP
php事件驱动化设计详解
2016/11/10 PHP
Laravel6.2中用于用户登录的新密码确认流程详解
2019/10/16 PHP
php模拟实现斗地主发牌
2020/04/22 PHP
JavaScript 权威指南(第四版) 读书笔记
2009/08/11 Javascript
小议javascript 设计模式 推荐
2009/10/28 Javascript
jquery实现居中弹出层代码
2010/08/25 Javascript
jquery $(this).attr $(this).val方法使用介绍
2013/10/08 Javascript
JQueryiframe页面操作父页面中的元素与方法(实例讲解)
2013/11/19 Javascript
用js代码改变单选框选中状态的简单实例
2013/12/18 Javascript
jQuery监控文本框事件并作相应处理的方法
2015/04/16 Javascript
js识别uc浏览器的代码
2015/11/06 Javascript
jQuery实现的纵向下拉菜单实例详解【附demo源码下载】
2016/07/09 Javascript
vue.js的手脚架vue-cli项目搭建的步骤
2017/08/30 Javascript
vue router动态路由下让每个子路由都是独立组件的解决方案
2018/04/24 Javascript
详解vue2.0监听属性的使用心得及搭配计算属性的使用
2018/07/18 Javascript
对layui初始化列表的CheckBox属性详解
2019/09/13 Javascript
微信小程序实现蓝牙打印
2019/09/23 Javascript
python多线程编程方式分析示例详解
2013/12/06 Python
python+opencv实现动态物体追踪
2018/01/09 Python
python实现微信发送邮件关闭电脑功能
2018/02/22 Python
Django uwsgi Nginx 的生产环境部署详解
2019/02/02 Python
Python的numpy库下的几个小函数的用法(小结)
2019/07/12 Python
python按行读取文件并找出其中指定字符串
2019/08/08 Python
在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern "C"
2014/08/09 面试题
优秀员工自荐信范文
2013/10/05 职场文书
银行职员思想汇报
2013/12/31 职场文书
聘用意向书范本
2014/04/01 职场文书
法院先进个人事迹材料
2014/05/04 职场文书
合作协议书范文
2014/08/20 职场文书
实习生辞职信范文
2015/03/02 职场文书
weblogic服务建立数据源连接测试更新mysql驱动包的问题及解决方法
2022/01/22 MySQL
nginx sticky实现基于cookie负载均衡示例详解
2022/12/24 Servers