将所有字符转换为dec或十六进制HTML代码


Convert all characters to dec or hex HTML code equivalent

有没有一种方法可以使用PHP将所有字符(包括常规字符)转换为这样的字符:

&'#38; &'#233; &'#224; &'#231; &'#60;

当我说规则字符时,我的意思是说像"这样的字符;ABCD123@#$&";,等

这可能吗?

您可以用这一行来完成。

  1. 将字符串拆分为适当的数组
  2. 遍历得到其序数值的字符
  3. 使用实体模式连接
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) . ';'