HTML实体符号被用作实现保留字符(reserved characters)或者表达键盘无法输入的一些常用字符。在大多数浏览器中默认的字符集为ISO-8859-1。HTML实体符号我们在网页设计中经常用到。
例如:
因工作需要,编写了一个HTML实体编号与非ASCII字符串相互转换类,代码如下:
HtmlEntitie.class.PHP
PHP;">
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
?>