如何将html实体转换为十六进制?我用了这个代码$username = preg_replace_callback('/[\x{80}-\x{10FFFF}]/u', function ($m) { $char = current($m); $utf = iconv('UTF-8', 'UCS-4', $char); return sprintf("&#x%s;", ltrim(strtoupper(bin2hex($utf)), "0")); }, $username);但它不会转换字符等<。
1 回答
RISEBY
TA贡献1856条经验 获得超5个赞
如果你查看使用的正则表达式[\x{80}-\x{10FFFF}]
,你会发现它将匹配 ASCII 值(十六进制)位于 0x80 和 0x10FFFF 之间的所有字符
但如果你看一下 ASCII 图表,你会发现
<
和的十六进制值>
低于0x80
。假设您已从 API 发布者那里获得了正则表达式,他们可能希望您转换扩展的 ASCII 字符,例如这些字符,这样就不会造成任何问题。但是您可以编辑正则表达式并使其也适用于其他字符
- 1 回答
- 0 关注
- 169 浏览
添加回答
举报
0/150
提交
取消