求一个编码后没有大写字母的编码,比如将这个URL进行编码或加密 http://www.google.com/ERD0230/dfeeDDD 要求编码或加密后的代码不能有大写字母,并且是可逆日,应该怎样处理,感慨不尽
解决方案 »
- 做一个音乐排行榜网站
- UChome添加MYOP应用后无法获取用户信息
- 刚从JAVA转行到PHP学习中,学习kohana3框架有点问题,请各位大侠关照。
- 推荐一个支持php+mysql的免费空间
- php的cms的各种缓存的比较
- 程序
- discuz6.0怎么去掉版快的前的有无新帖改为版块图表
- 淘宝开放平台 taobao.picture.upload 上传单张图片的img参数怎么传入,请高手指教
- 数据查询效率好慢 用的thinkphp 11万数据用时0.09
- thinkphp volist 用法报错;刚学tp框架不久。求大腿
- 关于淘宝api或者自己写规则抓taobao产品的信息
- {foreach from=$brand_list item=brand name="brand_foreach"}这个标签中的name是什么意思,有什么用处
echo $m = current(unpack('H*', $s)), PHP_EOL;
echo pack('H*', $m), PHP_EOL;
http://www.google.com/ERD0230/dfeeDDD 就变成了 http://www.google.com/\e\r\d0230/dfee\d\d\d
编码的思路很简单吧,就是把大写字母变成小写,然后在之前加上一个反斜杠。
反编码就是检查每个字线前面是否有反斜杠,有的话去掉前面的反斜杠,再转成大写。这样可以吧。
版主不是给答案了吗?
如果按我#2说的,字符集恰好为16,这两个答案是一样的echo $s = 'http://www.google.com/ERD0230/dfeeDDD', PHP_EOL;
echo $m = current(unpack('H*', $s)), PHP_EOL;
////////////////////////////////////////////////////////////
$res = "";
for($i=0,$n=strlen($s);$i<$n;$i++)
{
$res .= str_pad(dechex(ord($s{$i})), 2, "0", STR_PAD_LEFT);
}
echo $res;
function encrypt($plainText)
{
return strtr(bin2hex($plainText), '0123456789abcdef', 'abcdefghijklmnop');
}function decrypt($encryptedText)
{
return pack("H*", (strtr($encryptedText, 'abcdefghijklmnop', '0123456789abcdef')));
}$url = encrypt('http://www.google.com/ERD0230/dfeeDDD');
echo $url . '<br>';
echo decrypt($url);
?>