我想把这个hello@domain.com转换成
hello@domain.com
我努力了:
url_encode($string)
这提供了我输入的相同字符串,返回与@符号转换为@
也试过:
htmlentities($string)
这提供了相同的字符串.
我正在使用UTF8字符集.不知道这是否有区别….
在这里(假设UTF-8,但是改变很简单):
原文链接:https://www.f2er.com/php/140157.htmlfunction encode($str) { $str = mb_convert_encoding($str,'UTF-32','UTF-8'); //big endian $split = str_split($str,4); $res = ""; foreach ($split as $c) { $cur = 0; for ($i = 0; $i < 4; $i++) { $cur |= ord($c[$i]) << (8*(3 - $i)); } $res .= "&#" . $cur . ";"; } return $res; }
编辑推荐替代使用unpack
:
function encode2($str) { $str = mb_convert_encoding($str,'UTF-8'); $t = unpack("N*",$str); $t = array_map(function($n) { return "&#$n;"; },$t); return implode("",$t); }