1. 云栖社区>
  2. PHP教程>
  3. 正文

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

作者:用户 来源:互联网 时间:2017-12-01 14:31:00

htmlphp字符串ascii转换编号实体相互

php HTML实体编号与非ASCII字符串相互转换类 - 摘要: 本文讲的是php HTML实体编号与非ASCII字符串相互转换类, HTML实体符号被用作实现保留字符(reserved characters)或者表达键盘无法输入的一些常用字符。在大多数浏览器中默认的字符集为ISO-8859-1。HTML实体符号我们在网页设计中经常用到。 例如: 字符 实体名称 实体编

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

例如:

字符 实体名称 实体编号  描述&   &   &   and符号,与"   "  "   引号©   ©  ©  版权标志®   ®   »  注册标志™   ™ ™  商标标志“   “ “  左双引号”   ” ”  右双引号‘   ‘ ‘  做单引号’   ’ ’  右单引号

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

HtmlEntitie.class.php

<?php/** *  HTML实体编号与非ASCII字符串相互转换类 *  Date:   2016-09-07 *  Author: fdipzone *  Ver:    1.0 * *  Func: *  public  encode 字符串转为HTML实体编号 *  public  decode HTML实体编号转为字符串 *  private _convertToHtmlEntities 转换为HTML实体编号处理 */class HtmlEntitie{ // class start    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?>

demo.php

<?phprequire 'HtmlEntitie.class.php';$str = '<p>更多资讯可关注本人微信号:fdipzone-idea</p><p><img border="0" src="http://img.blog.csdn.net/20141224160911852" width="180" height="180" title="破晓领域"></p><p>您的支持是我最大的动力,谢谢。</p>';// 字符串转为HTML实体编号$cstr = HtmlEntitie::encode($str);echo '字符串转为HTML实体编号'.PHP_EOL;echo $cstr.PHP_EOL.PHP_EOL;// HTML实体编号转为字符串echo 'HTML实体编号转为字符串'.PHP_EOL;echo HtmlEntitie::decode($cstr);?>

输出:

字符串转为HTML实体编号<p>&#26356;&#22810;&#36164;&#35759;&#21487;&#20851;&#27880;&#26412;&#20154;&#24494;&#20449;&#21495;&#65306;fdipzone-idea</p><p><img border="0" src="http://img.blog.csdn.net/20141224160911852" width="180" height="180" title="&#30772;&#26195;&#39046;&#22495;"></p><p>&#24744;&#30340;&#25903;&#25345;&#26159;&#25105;&#26368;&#22823;&#30340;&#21160;&#21147;&#65292;&#35874;&#35874;&#65281;</p>HTML实体编号转为字符串<p>更多资讯可关注本人微信号:fdipzone-idea</p><p><img border="0" src="http://img.blog.csdn.net/20141224160911852" width="180" height="180" title="破晓领域"></p><p>您的支持是我最大的动力,谢谢。</p>



两种都可以在浏览器正常显示,如下图:

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


源码下载地址:点击查看

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索html , php , 字符串 , ascii , 转换 , 编号 , 实体 相互 ,以便于您获取更多的相关知识。