Home  >  Article  >  Backend Development  >  PHP implements a class for converting HTML entity numbers and non-ASCII strings to each other

PHP implements a class for converting HTML entity numbers and non-ASCII strings to each other

jacklove
jackloveOriginal
2018-06-08 23:08:272285browse

HTML entity symbols are used to implement reserved characters or to express some common characters that cannot be input by the keyboard. The default character set in most browsers is ISO-8859-1. HTML entity symbols are often used in web design.

For example:

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

Due to work needs, I wrote a class for converting HTML entity numbers and non-ASCII strings. The code is as follows:

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 = &#39;UTF-8&#39;;    /**
     * 字符串转为HTML实体编号
     * @param  String $str      字符串
     * @param  String $encoding 编码
     * @return String
     */
    public static function encode($str, $encoding=&#39;UTF-8&#39;){
        self::$_encoding = $encoding;        return preg_replace_callback(&#39;|[^\x00-\x7F]+|&#39;, array(__CLASS__, &#39;_convertToHtmlEntities&#39;), $str);
    }    /**
     * HTML实体编号转为字符串
     * @param  String $str      HTML实体编号字符串
     * @param  String $encoding 编码
     * @return String
     */
    public static function decode($str, $encoding=&#39;UTF-8&#39;){
        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, &#39;UCS-2BE&#39;, $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 &#39;HtmlEntitie.class.php&#39;;$str = &#39;<p>更多资讯可关注本人微信号:fdipzone-idea</p><p><img  border="0" src="https://img-blog.csdn.net/20141224160911852"    style="max-width:90%"  style="max-width:90%" title="破晓领域" alt="PHP implements a class for converting HTML entity numbers and non-ASCII strings to each other" ></p><p>您的支持是我最大的动力,谢谢!</p>&#39;;// 字符串转为HTML实体编号$cstr = HtmlEntitie::encode($str);echo &#39;字符串转为HTML实体编号&#39;.PHP_EOL;echo $cstr.PHP_EOL.PHP_EOL;// HTML实体编号转为字符串echo &#39;HTML实体编号转为字符串&#39;.PHP_EOL;echo HtmlEntitie::decode($cstr);?>

Output:

字符串转为HTML实体编号<p>更多资讯可关注本人微信号:fdipzone-idea</p><p><img  alt="PHP implements a class for converting HTML entity numbers and non-ASCII strings to each other" ></p><p>您的支持是我最大的动力,谢谢!</p>HTML实体编号转为字符串<p>更多资讯可关注本人微信号:fdipzone-idea</p><p><img  alt="PHP implements a class for converting HTML entity numbers and non-ASCII strings to each other" ></p><p>您的支持是我最大的动力,谢谢!</p>


Both of them can be displayed normally in the browser, as shown below:

PHP implements a class for converting HTML entity numbers and non-ASCII strings to each other

This article explains how to convert HTML entity numbers and non-ASCII strings in PHP Class-related knowledge, please pay attention to the php Chinese website for more related content.

Related recommendations:
php creates a unique number class based on the auto-incremented id

About mysql View the currently used configuration file my.cnf The method explains

How to determine whether a point is within the specified polygon area through mysql

The above is the detailed content of PHP implements a class for converting HTML entity numbers and non-ASCII strings to each other. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn