现金,请哪位朋友帮我把这段PHP的代码,改写成ASP的,谢谢~

lovemmc 2012-03-04 05:19:44

<?php
/**
* StringUtil
*
* @author mickey
* @version 1.0
* @package Utility
*/
final class StringUtil
{
/**
* 字符串编码表,32个无重复字符
* 顺序有关,不同顺序会编码出不同结果
* @var stirng
*/
private static $_STR_ENC_CODE_TABLE="123456abcdefghijklmnopqrstuvwxyz";
private static $_STR_ENC_BIT5 = 5;
private static $_STR_ENC_BIT8 = 8;


/**
* 编码一个字符串
*
* @param string $keywords
* @return string
*/
public static function encodeString($string)
{
if(empty($string))
{
return "";
}
$string=strtolower($string);
$encode_str='';
$bit_str='';

//串联字符串的二进制表示
for($i=0;$i<strlen($string);$i++)
{
$bit_str.=sprintf('%08b',ord($string[$i]));
}
//按5Bit分组
$nbit5=strlen($bit_str)%self::$_STR_ENC_BIT5==0?strlen($bit_str)/self::$_STR_ENC_BIT5:intval(strlen

($bit_str)/self::$_STR_ENC_BIT5)+1;
$bit5_arr=array();
$i=0;
while($i<$nbit5)
{
$bit5_arr[]= substr($bit_str,$i*self::$_STR_ENC_BIT5,self::$_STR_ENC_BIT5);
$i++;
}

//对Bit5数组补位:左边000,不足8位再在后面补0,对齐到8位
$bit5_arr_pad=array();
foreach($bit5_arr as $bit)
{
$bit='000'.$bit;
$bit=str_pad($bit,8,'0');
$bit5_arr_pad[]=$bit;
}

//从词典索引查找字符,组合成最终的编码串
foreach($bit5_arr_pad as $v)
{
$encode_str.=substr(self::$_STR_ENC_CODE_TABLE,bindec($v),1);
}
return $encode_str;
}
/**
* 解码一个由StringUtil::encode方法编码的字符串
*
* @param string $string 待解码的字符串
* @return string
*/
public static function decodeString($encodedString)
{
if(empty($encodedString))
{
return "";
}
$string=strtolower($encodedString);
$decode_str='';
$bit_str='';

//合并待解码字符串在词典的索引值的二进制表示
for($i=0;$i<strlen($string);$i++)
{
$bit_str.=sprintf('%08b',strpos(self::$_STR_ENC_CODE_TABLE,$string[$i]));
}

//按8位1组进行分解
$bit8_arr=array();
$i=0;
while($i<strlen($bit_str)/self::$_STR_ENC_BIT8)
{
$bit8_arr[]= substr($bit_str,$i*self::$_STR_ENC_BIT8,self::$_STR_ENC_BIT8);
$i++;
}

//清理左边的000,并重新合并
$bit8_arr_fixed=array();
foreach($bit8_arr as $bit)
{
$bit=substr($bit,3);
$bit8_arr_fixed[]=$bit;
}
$bit_str=implode('',$bit8_arr_fixed);

//再按8位1组进行分解,得到二进制值
$nbit8=intval(strlen($bit_str)/self::$_STR_ENC_BIT8);
$bit8_arr=array();
$i=0;
while($i<$nbit8)
{
$bit8_arr[]= substr($bit_str,$i*self::$_STR_ENC_BIT8,self::$_STR_ENC_BIT8);
$i++;
}
reset($bit8_arr);

//转化字符串
foreach($bit8_arr as $v)
{
$decode_str.=chr(bindec($v));
}
return $decode_str;
}
}
$aa=StringUtil::encodeString("中文 abc 123");
$bb=StringUtil::decodeString($aa);
echo $aa;
echo $bb;
?>


这个是仿淘宝搜索关键字编码/解码的,我想弄成ASP的,现金30元当做报酬,钱不多,买包烟意思意思吧,谢谢!
转好了请加我QQ:65828256,支付宝或网银给
...全文
60 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧