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标记的PHP函数
Oct 09 PHP
PHP详细彻底学习Smarty
Mar 27 PHP
IP138 IP地址查询小偷实现代码
Feb 15 PHP
php下安装配置fckeditor编辑器的方法
Mar 02 PHP
mysql总结之explain
Feb 27 PHP
php几个预定义变量$_SERVER用法小结
Nov 07 PHP
Codeigniter的dom类用法实例
Jun 26 PHP
PHP实现长文章分页实例代码(附源码)
Feb 03 PHP
PHP文字转图片功能原理与实现方法分析
Aug 31 PHP
PDO::lastInsertId讲解
Jan 29 PHP
PHP cookie与session会话基本用法实例分析
Nov 18 PHP
利用ajax+php实现商品价格计算
Mar 31 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部分常见问题总结
2008/03/27 PHP
攻克CakePHP系列一 连接MySQL数据库
2008/10/22 PHP
用PHP实现浏览器点击下载TXT文档的方法详解
2013/06/02 PHP
Laravel 5框架学习之Laravel入门和新建项目
2015/04/07 PHP
PHP获取路径和目录的方法总结【必看篇】
2017/03/04 PHP
PHP设计模式之PHP迭代器模式讲解
2019/03/22 PHP
Ctrl+Enter提交内容信息
2006/06/26 Javascript
通过判断JavaScript的版本实现执行不同的代码
2010/05/11 Javascript
jQuery表单验证插件formValidator(改进版)
2012/02/03 Javascript
JavaScript事件处理器中的event参数使用介绍
2013/05/24 Javascript
js截取字符串的两种方法及区别详解
2013/11/05 Javascript
利用javascript数组长度循环数组内所有元素
2013/12/27 Javascript
jQuery支持动态参数将函数绑定到事件上的方法
2015/03/17 Javascript
基于jQuery通过jQuery.form.js插件实现异步上传
2015/12/13 Javascript
JS数组去掉重复数据只保留一条的实现代码
2016/08/11 Javascript
Bootstrap表单简单实现代码
2017/03/06 Javascript
ES6正则表达式的一些新功能总结
2017/05/09 Javascript
nodejs接入阿里大鱼短信验证码的方法
2017/07/10 NodeJs
如何使用pm2快速将项目部署到远程服务器
2019/03/12 Javascript
vue19 组建 Vue.extend component、组件模版、动态组件 的实例代码
2019/04/04 Javascript
python实现的简单RPG游戏流程实例
2015/06/28 Python
深入浅析ImageMagick命令执行漏洞
2016/10/11 Python
python实现括号匹配的思路详解
2018/08/23 Python
Python读取txt内容写入xls格式excel中的方法
2018/10/11 Python
python向字符串中添加元素的实例方法
2019/06/28 Python
基于python实现自动化办公学习笔记(CSV、word、Excel、PPT)
2019/08/06 Python
安装不同版本的tensorflow与models方法实现
2021/02/20 Python
详解HTML5中的picture元素响应式处理图片
2018/01/03 HTML / CSS
邀请函模板
2015/02/02 职场文书
公司回复函格式
2015/07/14 职场文书
研讨会致辞
2015/07/31 职场文书
银行中层干部培训心得体会
2016/01/11 职场文书
八年级历史教学反思
2016/02/19 职场文书
2016年领导干部廉政承诺书
2016/03/24 职场文书
你为什么是穷人?可能是这5个缺点造成
2019/07/11 职场文书
详解Python自动化之文件自动化处理
2021/06/21 Python