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

前端之家收集整理的这篇文章主要介绍了php实现HTML实体编号与非ASCII字符串相互转换类实例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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
?>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

猜你在找的PHP相关文章