微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

例如:

因工作需要,编写了一个HTML实体编号与非ASCII字符串相互转换类,代码如下:

HtmlEntitie.class.PHP

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐