ホームページ  >  記事  >  バックエンド開発  >  PHP は、HTML エンティティ番号と非 ASCII 文字列を相互に変換するためのクラスを実装します。

PHP は、HTML エンティティ番号と非 ASCII 文字列を相互に変換するためのクラスを実装します。

jacklove
jackloveオリジナル
2018-06-08 23:08:272376ブラウズ

HTML エンティティ シンボルは、予約文字を実装したり、キーボードで入力できないいくつかの一般的な文字を表現したりするために使用されます。ほとんどのブラウザのデフォルトの文字セットは ISO-8859-1 です。 HTML エンティティ シンボルは、Web デザインでよく使用されます。

例:

字符 实体名称 实体编号  描述
&   &   &   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 = &#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 は、HTML エンティティ番号と非 ASCII 文字列を相互に変換するためのクラスを実装します。" ></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);?>

出力:

字符串转为HTML实体编号<p>更多资讯可关注本人微信号:fdipzone-idea</p><p><img  alt="PHP は、HTML エンティティ番号と非 ASCII 文字列を相互に変換するためのクラスを実装します。" ></p><p>您的支持是我最大的动力,谢谢!</p>HTML实体编号转为字符串<p>更多资讯可关注本人微信号:fdipzone-idea</p><p><img  alt="PHP は、HTML エンティティ番号と非 ASCII 文字列を相互に変換するためのクラスを実装します。" ></p><p>您的支持是我最大的动力,谢谢!</p>


以下に示すように、両方ともブラウザで正常に表示できます。

PHP は、HTML エンティティ番号と非 ASCII 文字列を相互に変換するためのクラスを実装します。

#この記事では、PHP がどのように相互変換を実現するかを説明します。 HTML エンティティ番号と非 ASCII 文字列 クラス関連の知識については、関連コンテンツについては php 中国語 Web サイトに注意してください。

関連する推奨事項:
php は自動インクリメントされた ID に基づいて一意の数値クラスを作成します

mysql について 現在使用されている設定を表示しますファイル my.cnf このメソッドでは、

#mysql
を通じてポイントが指定されたポリゴン領域内にあるかどうかを判断する方法を説明します。

以上がPHP は、HTML エンティティ番号と非 ASCII 文字列を相互に変換するためのクラスを実装します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。