Rumah > Soal Jawab > teks badan
PHPz2017-04-10 16:37:13
在网上找到一个解决方案:
<?php
function myEncode($str){
$arrReturn=array();
for($i=0;$i<strlen($str);++$i){
$a=dechex(ord($str{$i})); //ord() 函数返回字符串的首个字符的 ASCII 值。dechex() 函数把十进制转换为十六进制。
for($j=0;$j<strlen($a);++$j){
$char=$a{$j};
if($char>='a'){//是字母
$arrReturn[]=chr(ord($char)+10);
}else{
//是数字
//0->a,1->b,2->c ,3->d
//即chr(ord($char)-ord('0')+ord('a')); //=chr(ord($char)-48+97)
//=chr(ord($char+49)
$arrReturn[]=chr(ord($char)+49);
}
}
}
return implode('',$arrReturn);
}
echo myEncode('苹果').'<br/>';//oiilljogjojm
function myDecode($str){
$chinese=array();
for($i=0;$i<strlen($str);$i+=2){
$arr=array();
for($j=0;$j<2;$j++){
$char=$str{$i+$j};
//107=ord('a')+10
$arr[]= ord($char)>=107 ? chr(ord($char)-10):chr(ord($char)-49);
}
$chinese[]= chr(hexdec($arr[0].$arr[1]));
}
return implode('',$chinese);
}
echo myDecode('oelnkaofkfln');//苹果
?>