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 相关文章推荐
PHP程序员编程注意事项
Apr 10 PHP
修改PHP的memory_limit限制的方法分享
Feb 21 PHP
ubuntu10.04配置 nginx+php-fpm模式的详解
Jun 03 PHP
php最简单的删除目录与文件实现方法
Nov 28 PHP
php使用COPY函数更新配置文件的方法
Jun 18 PHP
如何把php5.3版本升级到php5.4或者php5.5
Jul 31 PHP
yii2超好用的日期组件和时间组件
May 05 PHP
学习PHP的数组总结【经验】
May 05 PHP
php中遍历二维数组并以表格的形式输出的方法
Jan 03 PHP
PHP编程计算两个时间段是否有交集的实现方法(不算边界重叠)
May 30 PHP
YII框架模块化处理操作示例
Apr 26 PHP
yii2.0框架数据库操作简单示例【添加,修改,删除,查询,打印等】
Apr 13 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不写闭合标签的好处
2014/03/04 PHP
php中get_object_vars()在数组的实例用法
2021/02/22 PHP
用按钮控制iframe显示的网页实现方法
2013/02/04 Javascript
JS中setInterval、setTimeout不能传递带参数的函数的解决方案
2013/04/28 Javascript
jquery限定文本框只能输入数字即整数和小数
2013/11/29 Javascript
jQuery - css() 方法示例详解
2014/01/16 Javascript
js类型转换与引用类型详解(Boolean_Number_String)
2014/03/07 Javascript
jQuery中focus事件用法实例
2014/12/26 Javascript
js实现可得到不同颜色值的颜色选择器实例
2015/02/28 Javascript
探索angularjs+requirejs全面实现按需加载的套路
2016/02/26 Javascript
js学习总结之dom2级事件基础知识详解
2017/07/27 Javascript
使用Node.js实现简易MVC框架的方法
2017/08/07 Javascript
Vue中引入样式文件的方法
2017/08/18 Javascript
解决vue中使用swiper插件问题及swiper在vue中的用法
2018/04/04 Javascript
vue基于element的区间选择组件
2018/09/07 Javascript
Vue.use()在new Vue() 之前使用的原因浅析
2019/08/26 Javascript
Vue双向绑定实现原理与方法详解
2020/05/07 Javascript
c++生成dll使用python调用dll的方法
2014/01/20 Python
一则python3的简单爬虫代码
2014/05/26 Python
浅谈Python数据类型之间的转换
2016/06/08 Python
python爬虫获取多页天涯帖子
2018/02/23 Python
spark: RDD与DataFrame之间的相互转换方法
2018/06/07 Python
django框架F&amp;Q 聚合与分组操作示例
2019/12/12 Python
TensorFlow dataset.shuffle、batch、repeat的使用详解
2020/01/21 Python
Web前端页面跳转并取到值
2017/04/24 HTML / CSS
法国在线购买汽车轮胎网站:123pneus.fr
2019/02/25 全球购物
牵手50新加坡:专为黄金岁月的单身人士而设的交友网站
2020/08/16 全球购物
abstract是什么意思
2012/02/12 面试题
房地产融资计划书
2014/01/10 职场文书
大一学生职业生涯规划
2014/03/11 职场文书
《富饶的西沙群岛》教学反思
2014/04/09 职场文书
工资证明格式模板
2015/06/12 职场文书
经典人生语录分享:不畏将来,不念过去,笑对当下
2019/12/12 职场文书
nginx中proxy_pass各种用法详解
2021/11/07 Servers
Android开发 使用文件储存的方式保存QQ密码
2022/04/24 Java/Android
Python matplotlib 利用随机函数生成变化图形
2022/04/26 Python