【发布时间】:2022-02-07 20:28:42
【问题描述】:
有没有一种方法可以使用 PHP 将所有字符(包括常规字符)转换为类似这样的字符:
&\#38; &\#233; &\#224; &\#231; &\#60;
当我说常规字符时,我的意思是说诸如“ABCD123!@#$”之类的字符。
这可能吗?
【问题讨论】:
有没有一种方法可以使用 PHP 将所有字符(包括常规字符)转换为类似这样的字符:
&\#38; &\#233; &\#224; &\#231; &\#60;
当我说常规字符时,我的意思是说诸如“ABCD123!@#$”之类的字符。
这可能吗?
【问题讨论】:
你可以用这一个班轮做到这一点。
echo '&#' . join(';&#', array_map('ord', str_split($str))) . ';';
另外,您说您想将字符转换为等效的十六进制,但您的值似乎都不是十六进制,除非这是巧合并且您的示例中没有 a-f。
【讨论】:
有几种方法。一个是
join('', array_map(create_function('$c', 'return "&#".ord($c).";";'), str_split($string)));
【讨论】:
借助 Alex/Anomie 的回答,要获得完整的 Unicode 支持,您可以使用 http://hsivonen.iki.fi/php-utf8/ 的包来执行以下操作:
'&#' . join(';&#', utf8ToUnicode($str) . ';'
【讨论】: