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

2025-05-29 0 71

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

例如:

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

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

HtmlEntitie.class.PHP

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55
<?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

?>

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

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 php实现HTML实体编号与非ASCII字符串相互转换类实例 https://www.kuaiidc.com/95844.html

相关文章

发表评论
暂无评论