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 相关文章推荐
不用数据库的多用户文件自由上传投票系统(1)
Oct 09 PHP
php下实现在指定目录搜索指定类型文件的函数
Oct 03 PHP
php面向对象全攻略 (十二) 抽象方法和抽象类
Sep 30 PHP
php 安全过滤函数代码
May 07 PHP
php中3种方法删除字符串中间的空格
Mar 10 PHP
php数组查找函数in_array()、array_search()、array_key_exists()使用实例
Apr 29 PHP
PHP生成随机数的方法实例分析
Jan 22 PHP
php 类自动载入的方法
Jun 03 PHP
PHP对称加密函数实现数据的加密解密
Oct 27 PHP
PHP中TP5 上传文件的实例详解
Jul 31 PHP
php实现微信公众号创建自定义菜单功能的实例代码
Jun 11 PHP
laravel框架中表单请求类型和CSRF防护实例分析
Nov 23 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
第九节--绑定
2006/11/16 PHP
mysql 全文搜索 技巧
2007/04/27 PHP
让的PHP代码飞起来的40条小技巧(提升php效率)
2010/04/12 PHP
PHP操作数组的一些函数整理介绍
2011/07/17 PHP
PHP 魔术变量和魔术函数详解
2015/02/25 PHP
PHP精确到毫秒秒杀倒计时实例详解
2019/03/14 PHP
PHP之多条件混合筛选功能的实现方法
2019/10/09 PHP
javascript 清空form表单中某种元素的值
2009/12/26 Javascript
基于jQuery的试卷自动排版系统实现代码
2011/01/06 Javascript
AngularJS的内置过滤器详解
2015/05/14 Javascript
javascript实现数字倒计时特效
2016/03/30 Javascript
vue调用高德地图实例代码
2017/04/28 Javascript
解决ztree搜索中多级菜单展示不全问题
2017/07/05 Javascript
使用pm2部署node生产环境的方法步骤
2019/03/09 Javascript
基于Vue+elementUI实现动态表单的校验功能(根据条件动态切换校验格式)
2019/04/04 Javascript
Vue利用Blob下载原生二进制数组文件
2019/09/25 Javascript
[04:52]第二届DOTA2亚洲邀请赛主赛事第一天比赛集锦:OG娜迦海妖放大配合谜团大中3人
2017/04/02 DOTA
python中for语句简单遍历数据的方法
2015/05/07 Python
python使用MySQLdb访问mysql数据库的方法
2015/08/03 Python
python爬虫入门教程--快速理解HTTP协议(一)
2017/05/25 Python
python生成tensorflow输入输出的图像格式的方法
2018/02/12 Python
python实现指定字符串补全空格、前面填充0的方法
2018/11/16 Python
利用Python的turtle库绘制玫瑰教程
2019/11/23 Python
使用Python绘制台风轨迹图的示例代码
2020/09/21 Python
Vince官网:全球著名设计师品牌,休闲而优雅的服饰
2017/01/15 全球购物
JAVA中运算符的分类及举例
2015/09/12 面试题
教师职称自我鉴定
2014/02/12 职场文书
学校党的群众路线教育实践活动总结报告
2014/07/03 职场文书
企业趣味活动方案
2014/08/21 职场文书
谢师宴答谢词
2015/01/05 职场文书
党校个人总结
2015/03/04 职场文书
实习单位推荐信
2015/03/27 职场文书
小学教师读书笔记
2015/07/01 职场文书
在Java中Collection的一些常用方法总结
2021/06/13 Java/Android
如何使用分区处理MySQL的亿级数据优化
2021/06/18 MySQL
Mysql的Table doesn't exist问题及解决
2022/12/24 MySQL