加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-12 21:49:36 所属栏目:PHP教程 来源:网络整理
导读:HTML实体符号被用作实现保留字符(reserved characters)或者表达键盘无法输入的一些常用字符。在大多数浏览器中默认的字符集为ISO-8859-1。HTML实体符号我们在网页设计中经常用到。 例如: 因工作需要,编写了一个HTML实体编号与非ASCII字符串相互转换类,

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

例如:

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

HtmlEntitie.class.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
?>

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读