HTML 实体转十六进制

如何将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);

但它不会转换字符等<。


慕容708150
浏览 99回答 1
1回答

RISEBY

如果你查看使用的正则表达式[\x{80}-\x{10FFFF}],你会发现它将匹配 ASCII 值(十六进制)位于 0x80 和 0x10FFFF 之间的所有字符但如果你看一下 ASCII 图表,你会发现<和的十六进制值>低于0x80。假设您已从 API 发布者那里获得了正则表达式,他们可能希望您转换扩展的 ASCII 字符,例如这些字符,这样就不会造成任何问题。但是您可以编辑正则表达式并使其也适用于其他字符
打开App,查看更多内容
随时随地看视频慕课网APP