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 = '<p>更多资讯可关注本人微信号:fdipzone-idea</p><p><img border="0" src="https://img-blog.csdn.net/20141224160911852" style="max-width:90%" style="max-width:90%" title="破晓领域" alt="php 實作HTML實體編號與非ASCII字串相互轉換類" ></p><p>您的支持是我最大的动力,谢谢!</p>';// 字符串转为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实体编号<p>更多资讯可关注本人微信号:fdipzone-idea</p><p><img alt="php 實作HTML實體編號與非ASCII字串相互轉換類" ></p><p>您的支持是我最大的动力,谢谢!</p>HTML实体编号转为字符串<p>更多资讯可关注本人微信号:fdipzone-idea</p><p><img alt="php 實作HTML實體編號與非ASCII字串相互轉換類" ></p><p>您的支持是我最大的动力,谢谢!</p>
#本文講解了php 實作HTML實體編號與非ASCII字串相互轉換類的相關知識,更多相關內容請關注php中文網。
相關推薦:
以上是php 實作HTML實體編號與非ASCII字串相互轉換類的詳細內容。更多資訊請關注PHP中文網其他相關文章!