解析百度图片搜索结果json中objURL图片原始地址函数(.net版 参考php版)

解析百度图片搜索结果json中objURL图片原始地址函数

<?php
$str = 'ippr_z2C$qAzdH3FAzdH3Fojgojg_z&e3Bf5f5_z&e3Bv54AzdH3FrAzdH3Fda8a8a8nAzdH3Fda8a8a8n8m9bdc-8a0abn8cdb_z&e3B3r2';
function baidtu_uncomplie($k) {
	$c = array('_z2C$q', '_z&e3B', 'AzdH3F');
	$d = array('w' => "a", 'k' => "b", 'v' => "c", '1' => "d", 'j' => "e", 'u' => "f", '2' => "g", 'i' => "h", 't' => "i", '3' => "j", 'h' => "k", 's' => "l", '4' => "m", 'g' => "n", "5" => "o", 'r' => "p", 'q' => "q", "6" => "r", 'f' => "s", 'p' => "t", "7" => "u", 'e' => "v", 'o' => "w", "8" => "1", 'd' => "2", 'n' => "3", "9" => "4", 'c' => "5", 'm' => "6", "0" => "7", 'b' => "8", 'l' => "9", 'a' => "0", '_z2C$q' => ":", '_z&e3B' => ".", 'AzdH3F' => "/");
	if (!$k || strpos($k, "http")) return $k;
	$j = $k;
	foreach ($c as $value) {
		$j = str_replace($value, $d[$value], $j);
	}
	$arr = str_split($j);
	foreach ($arr as $k => $v) {
		if (preg_match('/^[a-w\d]+$/', $v)) $arr[$k] = $d[$v];
	}
	return implode('', $arr);
}

print_r(baidtu_uncomplie($str));

.net版

string[] c = { "_z2C$q", "_z&e3B", "AzdH3F" };             Dictionary<String, String> d = new Dictionary<string, string>();             d.Add("w", "a"); d.Add("k", "b"); d.Add("v", "c"); d.Add("1", "d"); d.Add("j", "e"); d.Add("u", "f"); d.Add("2", "g");             d.Add("i", "h"); d.Add("t", "i"); d.Add("3", "j"); d.Add("h", "k"); d.Add("s", "l"); d.Add("4", "m"); d.Add("g", "n");             d.Add("5", "o"); d.Add("r", "p"); d.Add("q", "q"); d.Add("6", "r"); d.Add("f", "s"); d.Add("p", "t"); d.Add("7", "u");             d.Add("e", "v"); d.Add("o", "w"); d.Add("8", "1"); d.Add("d", "2"); d.Add("n", "3"); d.Add("9", "4"); d.Add("c", "5");             d.Add("m", "6"); d.Add("0", "7"); d.Add("b", "8"); d.Add("l", "9"); d.Add("a", "0"); d.Add("_z2C$q", ":"); d.Add("_z&e3B", "."); d.Add("AzdH3F", "/");

//字符串按长度截图         public string[] SplitByLen(string str, int separatorCharNum)         {             if (string.IsNullOrEmpty(str) || str.Length <= separatorCharNum)             {                 return new string[] { str };             }             string tempStr = str;             List<string> strList = new List<string>();             int iMax = Convert.ToInt32(Math.Ceiling(str.Length / (separatorCharNum * 1.0)));//获取循环次数                 for (int i = 1; i <= iMax; i++)             {                 string currMsg = tempStr.Substring(0, tempStr.Length > separatorCharNum ? separatorCharNum : tempStr.Length);                 strList.Add(currMsg);                 if (tempStr.Length > separatorCharNum)                 {                     tempStr = tempStr.Substring(separatorCharNum, tempStr.Length - separatorCharNum);                 }             }             return strList.ToArray();         }


public string baidtu_uncomplie(string str, string[] c, Dictionary<String, String> d)
        {
       if (!(str!=null) ||  str.Contains("http")) 
                return str;
            string j=str;
            foreach(string s in c){
                j=j.Replace(s,d[s]);
            }
            string[] arr=SplitByLen(j,1);
            for (int i = 0; i < arr.Length; i++)
            {
                try
                {
                    if (Regex.IsMatch(d[arr[i]], @"^[a-w\d]+$"))
                    {
                        arr[i] = d[arr[i]];
                    }
                }
                catch     //不匹配的不做处理:   ".   :   /"
                {
                }
            }
            string url=string.Join("",arr);
            return url;
        }




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值