php實現(xiàn)HTML實體編號與非ASCII字符串相互轉(zhuǎn)換類實例
更新時間:2016年11月02日 16:54:25 作者:傲雪星楓
本篇文章主要介紹了"php實現(xiàn)HTML實體編號與非ASCII字符串相互轉(zhuǎn)換類實例",主要涉及到HTML實體編號與非ASCII字符串相互轉(zhuǎn)換類方面的內(nèi)容,感興趣的同學可以參考一下。
HTML實體符號被用作實現(xiàn)保留字符(reserved characters)或者表達鍵盤無法輸入的一些常用字符。在大多數(shù)瀏覽器中默認的字符集為ISO-8859-1。HTML實體符號我們在網(wǎng)頁設(shè)計中經(jīng)常用到。
例如:

因工作需要,編寫了一個HTML實體編號與非ASCII字符串相互轉(zhuǎn)換類,代碼如下:
HtmlEntitie.class.PHP
<?php
/**
* HTML實體編號與非ASCII字符串相互轉(zhuǎn)換類
* Date: 2016-09-07
* Author: fdipzone
* Ver: 1.0
*
* Func:
* public encode 字符串轉(zhuǎn)為HTML實體編號
* public decode HTML實體編號轉(zhuǎn)為字符串
* private _convertToHtmlEntities 轉(zhuǎn)換為HTML實體編號處理
*/
class HtmlEntitie{ // class start
public static $_encoding = 'UTF-8';
/**
* 字符串轉(zhuǎn)為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實體編號轉(zhuǎn)為字符串
* @param String $str HTML實體編號字符串
* @param String $encoding 編碼
* @return String
*/
public static function decode($str, $encoding='UTF-8'){
return html_entity_decode($str, null, $encoding);
}
/**
* 轉(zhuǎn)換為HTML實體編號處理
* @param Mixed $data 待處理的數(shù)據(jù)
* @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
?>
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
在phpstudy集成環(huán)境下的nginx服務(wù)器下配置url重寫
這篇文章主要介紹了在phpstudy集成環(huán)境下的nginx服務(wù)器下配置url重寫的教程,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-12-12
Laravel學習筆記之Artisan命令生成自定義模板的方法
這篇文章主要介紹了Laravel學習筆記之Artisan命令生成自定義模板的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-11-11
Zend Framework入門教程之Zend_Mail用法示例
這篇文章主要介紹了Zend Framework中Zend_Mail用法,結(jié)合實例形式分析了Zend Framework中Zend_Mail組件的功能、使用步驟與相關(guān)操作技巧,需要的朋友可以參考下2016-12-12

