有没有一种方法可以使用PHP将所有字符(包括常规字符)转换为这样的字符:
& é à ç <
当我说规则字符时,我的意思是说像"这样的字符;ABCD123@#$&";,等
这可能吗?
您可以用这一行来完成。
- 将字符串拆分为适当的数组
- 遍历得到其序数值的字符
- 使用实体模式连接
echo '&#' . join(';&#', array_map('ord', str_split($str))) . ';';
CodePad。
此外,您说过要将字符转换为等效的十六进制字符,但您的值似乎都不是十六进制的,除非这是巧合,并且您的示例中没有a-f
。
有几种方法。一种是
join('', array_map(create_function('$c', 'return "&#".ord($c).";";'), str_split($string)));
Piggy支持Alex/Anomie的答案,要获得完整的Unicode支持,您可以在http://hsivonen.iki.fi/php-utf8/要做的事:
'&#' . join(';&#', utf8ToUnicode($str) . ';'