求一中文转换成字母的加密算法 我到网上找了种种算法,转了之后,一般生成的结果都太长,而且seo认为不友好的字符太多(如:%#!+等) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <?php echo ord(substr("数码相机",0,1));//202echo ord(substr("数码相机",1,1));//253echo dechex(202);//ca echo dechex(253);//fdecho "\n";echo chr(ord('c')+10);//mecho chr(ord('a')+10);//kecho chr(ord('f')+10);//pecho chr(ord('d')+10);//n?> <?php echo ord(substr("数码相机",2,1));//194echo ord(substr("数码相机",3,1));//235echo dechex(194);//c2 echo dechex(235);//ebecho "\n";echo chr(ord('c')+10);//mecho chr(ord('2')+10);//< 数字看来不能直接加10,换种方法echo chr(ord('a')+ord('2')-ord('0'));//cecho chr(ord('e')+10);//pecho chr(ord('b')+10);//necho "\n";echo ord(substr("数码相机",4,1));//207echo ord(substr("数码相机",5,1));//207echo dechex(207);//cf echo dechex(224);//e0echo "\n";echo chr(ord('c')+10);//mecho chr(ord('f')+10);//pecho chr(ord('e')+10);//oecho chr(ord('a')+ord('0')-ord('0'));//a?> <?php function enc($str){ $arrReturn=array(); for($i=0;$i<strlen($str);++$i){ $a=dechex(ord($str{$i})); 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 enc('数码相机');//mkpnmcolmpoallpkexit;?> 很感激楼上的,那mkpnmcolmpoallpk =>'数码相机' 的函数改怎么写呢,我是倒不出来啊 function dec($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 dec('mkpamcolmpoallpk');//署码相机 function dnc($str) { $arrReturn=array(); for($i=0;$i <strlen($str);++$i){ $OD=ord($str{$i}); if($OD>106) { $OD=$OD-10; } else { $OD=$OD-49; } $OD=chr($OD); //echo "{$OD}_"; //$OD=hexdec($OD); //$OD=chr($OD); $arrReturn[]=$OD; } $rel= implode('',$arrReturn); $index=1; $arrReturn=array(); for ($i=0;$i <strlen($rel);++$i) { $zi.=$rel{$i}; $index=$i%2; if($index==1) { $zi=str_replace("\\","5",$zi); $zi=str_replace("[","4",$zi); $zi=str_replace("]","6",$zi); $zi=hexdec("ox".$zi); $zi=chr($zi); $arrReturn[]=$zi; //echo $zi; $zi=""; } } $rel= implode('',$arrReturn); return urldecode($rel); }这是我写的,不如楼上的高人啊,结帖 还是正则表达式问题! php 遍历字段 循环 排列问题? php 上传问题 在线等哦 phpBoy 您好,可以给再我一个ajax+php实现根据选项显示内容的例子吗? 取出某列的值(连接mysql类的操作) 高手们,这样写对吗?请多多指教!!!! session中数组注册以及使用的问题(购物车中用到的) 谁有页面缓冲类! 关于目录的问题!!!! 迷茫 php问题求救
echo ord(substr("数码相机",0,1));//202
echo ord(substr("数码相机",1,1));//253echo dechex(202);//ca
echo dechex(253);//fd
echo "\n";echo chr(ord('c')+10);//m
echo chr(ord('a')+10);//k
echo chr(ord('f')+10);//p
echo chr(ord('d')+10);//n
?>
echo ord(substr("数码相机",2,1));//194
echo ord(substr("数码相机",3,1));//235echo dechex(194);//c2
echo dechex(235);//eb
echo "\n";echo chr(ord('c')+10);//m
echo chr(ord('2')+10);//< 数字看来不能直接加10,换种方法
echo chr(ord('a')+ord('2')-ord('0'));//c
echo chr(ord('e')+10);//p
echo chr(ord('b')+10);//n
echo "\n";echo ord(substr("数码相机",4,1));//207
echo ord(substr("数码相机",5,1));//207echo dechex(207);//cf
echo dechex(224);//e0
echo "\n";echo chr(ord('c')+10);//m
echo chr(ord('f')+10);//p
echo chr(ord('e')+10);//o
echo chr(ord('a')+ord('0')-ord('0'));//a
?>
$arrReturn=array();
for($i=0;$i<strlen($str);++$i){
$a=dechex(ord($str{$i}));
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 enc('数码相机');//mkpnmcolmpoallpk
exit;
?>
$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 dec('mkpamcolmpoallpk');//署码相机
{
$arrReturn=array();
for($i=0;$i <strlen($str);++$i){
$OD=ord($str{$i});
if($OD>106)
{
$OD=$OD-10;
}
else
{
$OD=$OD-49;
}
$OD=chr($OD);
//echo "{$OD}_";
//$OD=hexdec($OD);
//$OD=chr($OD);
$arrReturn[]=$OD;
}
$rel= implode('',$arrReturn);
$index=1;
$arrReturn=array();
for ($i=0;$i <strlen($rel);++$i)
{
$zi.=$rel{$i};
$index=$i%2;
if($index==1)
{
$zi=str_replace("\\","5",$zi);
$zi=str_replace("[","4",$zi);
$zi=str_replace("]","6",$zi);
$zi=hexdec("ox".$zi);
$zi=chr($zi);
$arrReturn[]=$zi;
//echo $zi;
$zi="";
}
}
$rel= implode('',$arrReturn);
return urldecode($rel);
}
这是我写的,不如楼上的高人啊,结帖