Maison  >  Article  >  développement back-end  >  PHP implémente une classe pour convertir les numéros d'entité HTML et les chaînes non-ASCII entre eux

PHP implémente une classe pour convertir les numéros d'entité HTML et les chaînes non-ASCII entre eux

jacklove
jackloveoriginal
2018-06-08 23:08:272354parcourir

Les symboles d'entité HTML sont utilisés pour implémenter des caractères réservés ou pour exprimer certains caractères courants qui ne peuvent pas être saisis au clavier. Le jeu de caractères par défaut dans la plupart des navigateurs est ISO-8859-1. Les symboles d'entité HTML sont souvent utilisés dans la conception Web.

Par exemple :

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

En raison de besoins professionnels, j'ai écrit une classe pour convertir les numéros d'entité HTML et les chaînes non-ASCII. Le code est le suivant :

. 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 implémente une classe pour convertir les numéros d'entité HTML et les chaînes non-ASCII entre eux" ></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);?>

Sortie :

字符串转为HTML实体编号<p>更多资讯可关注本人微信号:fdipzone-idea</p><p><img  alt="PHP implémente une classe pour convertir les numéros d'entité HTML et les chaînes non-ASCII entre eux" ></p><p>您的支持是我最大的动力,谢谢!</p>HTML实体编号转为字符串<p>更多资讯可关注本人微信号:fdipzone-idea</p><p><img  alt="PHP implémente une classe pour convertir les numéros d'entité HTML et les chaînes non-ASCII entre eux" ></p><p>您的支持是我最大的动力,谢谢!</p>


Les deux peuvent être affichés normalement dans le navigateur, comme indiqué ci-dessous :

PHP implémente une classe pour convertir les numéros dentité HTML et les chaînes non-ASCII entre eux

Cet article explique comment implémenter des entités HTML dans PHP Connaissances liées à la conversion entre des nombres et des chaînes non ASCII Pour plus de contenu connexe, veuillez prêter attention au site Web PHP chinois.

Recommandations associées :
php crée une classe de numéros unique basée sur l'identifiant auto-incrémenté

À propos de mysql Afficher la configuration actuellement utilisée fichier my.cnf La méthode explique

Comment utiliser MySQL pour déterminer si un point se trouve dans une zone de polygone spécifiée

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn