首页 / 个人笔记 /

以&#开头的是什么编码? php中文转以&#开头的文字

2022-11-18 13:50:55个人笔记阅读 0

中文汉字是转如何换成HTML实体的呢?

其实很简单,汉字的HTML实体由三部分组成,”&#+ASCII+;“ 即可。

例如,把“欢迎点赞收藏” 转换成“欢迎点赞收藏”

下面是php实现过程,喜欢的朋友可以点赞收藏哦

echo ascii_decode("黄瓜");

echo ascii_encode("黄瓜");
function ascii_decode($str, $prefix="&#") {
$string = '';
$str = str_replace($prefix, "", $str);
$strArr = explode(";", $str);
foreach ($strArr as $dec) {
if ($dec < 128) {
$string .= chr((int)str_replace($prefix,"",$dec));
} else if ($dec < 2048) {
$string .= chr(192 + (($dec - ($dec % 64)) / 64));
$string .= chr(128 + ($dec % 64));
} else {
$string .= chr(224 + (($dec - ($dec % 4096)) / 4096));
$string .= chr(128 + ((($dec % 4096) - ($dec % 64)) / 64));
$string .= chr(128 + ($dec % 64));
}
}
return $string;
}
function ascii_encode($str, $prefix = "&#") {
$ascii = '';
$len = strlen($str);
$a = 0;
while ($a < $len) {
$ud = 0;
if (ord($str[$a]) >= 0 && ord($str[$a]) <= 127) {
$ud = ord($str[$a]);
$a += 1;
} else if (ord($str[$a]) >= 192 && ord($str[$a]) <= 223) {
$ud = (ord($str[$a]) - 192) * 64 + (ord($str[$a + 1]) - 128);
$a += 2;
} else if (ord($str[$a]) >= 224 && ord($str[$a]) <= 239) {
$ud = (ord($str[$a]) - 224) * 4096 + (ord($str[$a + 1]) - 128) * 64 + (ord($str[$a + 2]) - 128);
$a += 3;
} else if (ord($str[$a]) >= 240 && ord($str[$a]) <= 247) {
$ud = (ord($str[$a]) - 240) * 262144 + (ord($str[$a + 1]) - 128) * 4096 + (ord($str[$a + 2]) - 128) * 64 + (ord($str[$a + 3]) - 128);
$a += 4;
} else if (ord($str[$a]) >= 248 && ord($str[$a]) <= 251) {
$ud = (ord($str[$a]) - 248) * 16777216 + (ord($str[$a + 1]) - 128) * 262144 + (ord($str[$a + 2]) - 128) * 4096 + (ord($str[$a + 3]) - 128) * 64 + (ord($str[$a + 4]) - 128);
$a += 5;
} else if (ord($str[$a]) >= 252 && ord($str[$a]) <= 253) {
$ud = (ord($str[$a]) - 252) * 1073741824 + (ord($str[$a + 1]) - 128) * 16777216 + (ord($str[$a + 2]) - 128) * 262144 + (ord($str[$a + 3]) - 128) * 4096 + (ord($str[$a + 4]) - 128) * 64 + (ord($str[$a + 5]) - 128);
$a += 6;
} else if (ord($str[$a]) >= 254 && ord($str[$a]) <= 255) {
$ud = false;
}
$ascii .= $prefix . $ud . ";";
}
return $ascii;
}

猜你喜欢

  • 帝国CMS插件

    帝国CMS自动标题图片并随机插入正文内容的插件

    插件功能1、可以将文章标题自动设置为标题图片2、背景图片随机3、文字过多会自动变成2行,4,更多定制功能请联系站长定制5、php版本最高为7.1插件安装方法1、下载插件2、将插件上传至网站/e/extend/目录,3、找多张背景图片,将图片得宽度统一调整为500px,将图片放进src文件夹;4、访问网站地址/e/extend/autopic/action.php?pwd=3615261,生成统一的

    2022-04-10 6
  • 帝国CMS插件

    帝国cms付费可复制+下载word插件+关注公众号下载功能

    本插件支持的支付接口:虎皮椒微信,虎皮椒支付宝温馨提示:接口开通需开通带H5支付功能帝国cms付费可复制插件功能1、付费复制内容2、付费正文内容转word下载3、关注公众号免费下载内容,可以定义每天下载次数,可以关闭。多个公众号随机。4、免费下载用完跳转到付费下载5、实现不用登陆即可付费下载或者复制6、插件没有改变程序核心代码7、可以统一资源价格,也可以单独为某篇资源价格8、插件是响应式,PC和移

    2022-04-14 6
  • 帝国CMS插件

    帝国CMS7.5自动定时审核发布插件和自动提交百度插件

    帝国CMS7.5自动定时审核发布插件插件功能1、可以自定义栏目审核顺序,2、可以指定每天审核总量3、依次每个栏目审核3条,知道审核完当天的数量插件教程1、上传目录autosh到/e/extend/目录,2、修改文件//自定义审核栏目顺序 可以不设置//$classlit="4";//PC百度token$yuming="http://www.mihua114.com";//结尾不带/$token="

    2022-04-10 6