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面向对象全攻略 (六)__set() __get() __isset() __unset()的用法
Sep 30 PHP
php 变量未定义等错误的解决方法
Jan 12 PHP
Php Ctemplate引擎开发相关内容
Mar 03 PHP
在PHP上显示JFreechart画的统计图方法
Nov 03 PHP
php实现加减法验证码代码
Feb 14 PHP
php获得url参数中具有&amp;的值的方法
Mar 05 PHP
PHP防范SQL注入的具体方法详解(测试通过)
May 09 PHP
php给图片添加文字水印方法汇总
Aug 27 PHP
php实现图片上传、剪切功能
May 07 PHP
在laravel中实现ORM模型使用第二个数据库设置
Oct 24 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
Mar 27 PHP
搭建PhpStorm+PhpStudy开发环境的超详细教程
Sep 17 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 fsockopen写的HTTP下载的类
2007/02/22 PHP
php经典算法集锦
2015/11/14 PHP
thinkphp项目部署到Linux服务器上报错“模板不存在”如何解决
2016/04/27 PHP
PHP+Redis链表解决高并发下商品超卖问题(实现原理及步骤)
2020/08/03 PHP
JavaScript获取页面上某个元素的代码
2011/03/13 Javascript
js 立即调用的函数表达式如何写
2014/01/12 Javascript
js识别不同浏览器基于userAgent做判断
2014/07/29 Javascript
jquery文档操作wrap()方法实例简述
2015/01/10 Javascript
jQuery实现的动态伸缩导航菜单实例
2015/05/07 Javascript
详解JavaScript的while循环的使用
2015/06/03 Javascript
JavaScript节点及列表操作实例小结
2015/08/05 Javascript
jQuery弹簧插件编写基础之“又见弹窗”
2015/12/11 Javascript
Jquery组件easyUi实现选项卡切换示例
2016/08/23 Javascript
vue 的keep-alive缓存功能的实现
2018/03/22 Javascript
Vue单页应用引用单独的样式文件的两种方式
2018/03/30 Javascript
js Element Traversal规范中的元素遍历方法
2018/04/19 Javascript
原生JS+HTML5实现的可调节写字板功能示例
2018/08/30 Javascript
微信小程序实现下拉刷新动画
2019/06/21 Javascript
JS实现灯泡开关特效
2020/03/30 Javascript
Python中下划线的使用方法
2015/03/27 Python
深入解析Python中的urllib2模块
2015/11/13 Python
python email smtplib模块发送邮件代码实例
2018/04/26 Python
Pytest mark使用实例及原理解析
2020/02/22 Python
Python 实现一行输入多个数字(用空格隔开)
2020/04/29 Python
Python编写memcached启动脚本代码实例
2020/08/14 Python
详解CSS3 弹性布局快速入门
2019/06/06 HTML / CSS
韩语专业本科生求职信
2013/10/01 职场文书
汽车专业毕业生推荐信
2013/11/12 职场文书
会计找工作求职信范文
2013/12/09 职场文书
社区中秋节活动方案
2014/01/29 职场文书
安卓程序员求职信
2014/02/28 职场文书
干部选拔任用方案
2014/05/26 职场文书
2014小学数学教研组工作总结
2014/12/06 职场文书
销售助理岗位职责
2015/02/11 职场文书
员工表扬信怎么写
2015/05/05 职场文书
遗失证明范文
2015/06/19 职场文书