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 mysql数据库操作分页类
Jun 04 PHP
php tp验证表单与自动填充函数代码
Feb 22 PHP
ThinkPHP模板替换与系统常量及应用实例教程
Aug 22 PHP
PHP实现算式验证码和汉字验证码实例
Mar 09 PHP
检测codeigniter脚本消耗内存情况的方法
Mar 21 PHP
使用WordPress发送电子邮件的相关PHP函数用法解析
Dec 15 PHP
php结合md5实现的加密解密方法
Jan 25 PHP
Zend Framework教程之资源(Resources)用法实例详解
Mar 14 PHP
PHP实现路由映射到指定控制器
Aug 13 PHP
php中strtotime函数性能分析
Nov 20 PHP
thinkPHP5实现数据库添加内容的方法
Oct 25 PHP
PHP7内核CGI与FastCGI详解
Apr 14 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中用加号与用array_merge合并数组的区别深入分析
2013/06/03 PHP
Yii多表联合查询操作详解
2016/06/02 PHP
php微信公众号开发之秒杀
2018/10/20 PHP
Yii框架组件的事件机制原理与用法分析
2020/04/07 PHP
关于Aptana Studio生成自动备份文件的解决办法
2009/12/23 Javascript
JQuery 1.3.2以上版本中出现pareseerror错误的解决方法
2011/01/11 Javascript
alert中断settimeout计时功能
2013/07/26 Javascript
JavaScript中常见的字符串操作函数及用法汇总
2015/05/04 Javascript
如何用jQuery实现ASP.NET GridView折叠伸展效果
2015/09/26 Javascript
js剪切板应用clipboardData实例解析
2016/05/29 Javascript
Bootstrap中的Panel和Table全面解析
2016/06/13 Javascript
vue.js+Element实现表格里的增删改查
2017/01/18 Javascript
NodeJs通过async/await处理异步的方法
2017/10/09 NodeJs
React Native中NavigatorIOS组件的简单使用详解
2018/01/27 Javascript
JS扩展String.prototype.format字符串拼接的功能
2018/03/09 Javascript
React中的render何时执行过程
2018/04/13 Javascript
详解使用vue-admin-template的优化历程
2018/05/20 Javascript
el-select数据过多懒加载的解决(loadmore)
2019/05/29 Javascript
8个有意思的JavaScript面试题
2019/07/30 Javascript
vue+ESLint 配置保存 自动格式化代码
2020/03/17 Javascript
[44:10]2018DOTA2亚洲邀请赛 4.5 淘汰赛 EG vs VP 第一场
2018/04/06 DOTA
关于Python形参打包与解包小技巧分享
2019/08/24 Python
pytorch 中的重要模块化接口nn.Module的使用
2020/04/02 Python
Python基于模块Paramiko实现SSHv2协议
2020/04/28 Python
Python中内建模块collections如何使用
2020/05/27 Python
Django+Uwsgi+Nginx如何实现生产环境部署
2020/07/31 Python
利用HTML5 Canvas制作一个简单的打飞机游戏
2015/05/11 HTML / CSS
Sperry澳大利亚官网:源自美国帆船鞋创始品牌
2019/07/29 全球购物
施工材料员岗位职责
2014/02/12 职场文书
多媒体专业自我鉴定
2014/02/28 职场文书
春节请假条
2014/04/11 职场文书
学生手册评语
2014/05/05 职场文书
技术入股合作协议书
2014/10/07 职场文书
武夷山导游词
2015/02/03 职场文书
南京大屠杀观后感
2015/06/02 职场文书
Keras在mnist上的CNN实践,并且自定义loss函数曲线图操作
2021/05/25 Python