php实现HTML实体编号与非ASCII字符串相互转换类实例

Glenna ·
更新时间:2024-09-21
· 532 次阅读

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

例如:


因工作需要,编写了一个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 strip_tags() 去字符串中的 HTML、XML 以及 PHP 标签的函数php截取html字符串及自动补全html标签的方法php对包含html标签的字符串进行截取的函数分享php 判断字符串中是否包含html标签浅析php过滤html字符串,防止SQL注入的方法实例讲解php将字符串输出到HTML



html实体 HTML PHP ascii

需要 登录 后方可回复, 如果你还没有账号请 注册新账号