php html字符实体编号所有字符,php 实现HTML实体编号与非ASCII字符串相互转换类

HTML实体符号被用作实现保留字符(reserved characters)或者表达键盘无法输入的一些常用字符。在大多数浏览器中默认的字符集为ISO-8859-1。HTML实体符号我们在网页设计中经常用到。

例如:字符 实体名称 实体编号 描述

& & & and符号,与

" " " 引号

© © © 版权标志

® ® » 注册标志

™ ™ 商标标志

“ “ 左双引号

” ” 右双引号

‘ ‘ 做单引号

’ ’ 右单引号

因工作需要,编写了一个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?>

demo.php<?phprequire 'HtmlEntitie.class.php';$str = '

更多资讯可关注本人微信号:fdipzone-idea

您的支持是我最大的动力,谢谢!

';// 字符串转为HTML实体编号$cstr = HtmlEntitie::encode($str);echo '字符串转为HTML实体编号'.PHP_EOL;echo $cstr.PHP_EOL.PHP_EOL;// HTML实体编号转为字符串echo 'HTML实体编号转为字符串'.PHP_EOL;echo HtmlEntitie::decode($cstr);?>

输出:字符串转为HTML实体编号

更多资讯可关注本人微信号:fdipzone-idea

您的支持是我最大的动力,谢谢!

HTML实体编号转为字符串

更多资讯可关注本人微信号:fdipzone-idea

您的支持是我最大的动力,谢谢!

两种都可以在浏览器正常显示,如下图:

本文讲解了php 实现HTML实体编号与非ASCII字符串相互转换类的相关知识,更多相关内容请关注php中文网。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值