有没有办法可以使用PHP将所有字符(包括常规字符)转换成这样的字符:
&安培;#38; &安培;#233; &安培;#224; &安培;#231; &安培;#60;
当我说普通字符时我的意思是说像“ABCD123!@#$”等字符
这可能吗?先谢谢!
答案 0 :(得分:2)
你可以用这个衬里做到这一点。
echo '&#' . join(';&#', array_map('ord', str_split($str))) . ';';
另外,你说你想将字符转换为它们的十六进制等值,但是你的值都不是十六进制,除非这是巧合而你的例子中没有a-f
。
答案 1 :(得分:2)
有几种方法。一个是
join('', array_map(create_function('$c', 'return "&#".ord($c).";";'), str_split($string)));
答案 2 :(得分:2)
在Alex的/ Anomie的回答中,为了获得完整的Unicode支持,你可以使用http://hsivonen.iki.fi/php-utf8/处的包来做:
'&#' . join(';&#', utf8ToUnicode($str) . ';'