用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - php代码库

批量生成淘宝客链接(根据淘宝商品id)

2013-12-22 作者: 小蜜锋举报

[php]代码库

<? php
require_once (dirname (__FILE__).'/TopSdk.php'); //引用淘宝开放平台 API SDK  http://open.taobao.com/index.htm

function object2Array ($d) {
    if (is_object ($d) ) {
        $d = get_object_vars ($d);
    }

    if (is_array ($d) ) {
        return array_map (__FUNCTION__, $d);
    } else {
        return $d;
    }
}


/*********************************************
* 函数名:get_taobaoke_link ($num_iids)
* 函数用途:通过淘宝商品 num_iids 获取其对应的淘宝客手机版链接
* 创建时间:2012-02-14
* 创建人:张宴 net@s135.com
* 参数说明:
*    $num_iids   淘宝商品ID(支持多个商品)数组,示例如下:
*          $num_iids[] = "13583512568";
*          $num_iids[] = "10809380078";
*          $num_iids[] = "10809380079";
* 返回值:
*    下标为淘宝商品 num_iid ,值为淘宝客链接 click_url 的二维数组。如果无淘宝客链接,click_url 为空字符串,示例如下:
*          array(3) {
*            ["13583512568"]=>
*            string(191) "http://auction1.wap.taobao.com/auction/item_detail-0db2-13583512568.jhtml?tks=jUTwPLMDtUUNEZhqfEuTZqkZhGw1LA7%2BzCJBXCj27NpurHxjZN70Amg0DVaFU61pfnHwW%2FI4MZGm%0Awgb69kbb1NL8uwtu%2BDnyAunBCVDP"
*            ["10809380078"]=>
*            string(187) "http://auction1.wap.taobao.com/auction/item_detail-0db2-10809380078.jhtml?tks=jUTwPLMDtUUNEGWhOOgVVuX%2BJKYt7fesyuZjEe7hvmpTJxYDfK8i1Wpvfl7lwI7nzD9W8M352v6E%0AyuUtsKun81AGltKzJWCYPiVDiOeC"
*            ["10809380079"]=>
*            string(0) ""
*          }
*********************************************/
function get_taobaoke_link ($num_iids) {
    $memcache = new Memcache;
    $memcache->connect ('127.0.0.1', 11911); //Memcached 缓存服务器地址
    $click_urls = $memcache->get ($num_iids);

    foreach ($num_iids AS $num_iid) {
        if (!isset ($click_urls[$num_iid]) ) {
            $tbapi_num_iids_arr[] = $num_iid;
        }
    }

    if (!empty ($tbapi_num_iids_arr) ) {
        $numbers = count ($tbapi_num_iids_arr);
        $numbers_max = 40; //淘宝 API 限制最大返回40条记录
        if ($numbers > 0) {
            $numbers_times = ceil ($numbers / $numbers_max); //第一层循环的循环次数
            $numbers_start = 0;
            $numbers_end = $numbers_max;
            for ($numbers_i = 1; $numbers_i <= $numbers_times; $numbers_i++) {
                for ($numbers_j = $numbers_start; $numbers_j < $numbers_end; $numbers_j++) {
                    if ($numbers_j >= $numbers) {
                        break;
                    }
                    $tbapi_num_iids_arr_sp[] = $tbapi_num_iids_arr[$numbers_j];
                }

                $numbers_start = $numbers_start + $numbers_max;
                $numbers_end = $numbers_end + $numbers_max;

                $tbapi_num_iids = implode (",", $tbapi_num_iids_arr_sp);
                $c = new TopClient;
                $c->appkey = 12498835; //淘宝开放平台 API 接口 App Key
                $c->secretKey = "745db5f8e316f9f1aa8310a7568d6566"; //淘宝开放平台 API 接口 App Secret
                $c->format = "json";
                $req = new TaobaokeItemsConvertRequest;
                $req->setFields ("num_iid,click_url");
                $req->setNumIids ($tbapi_num_iids);
                $req->setPid (29509662); //淘宝联盟(阿里妈妈)PID
                $req->setIsMobile ("true"); //如果要生成手机页面的淘宝客链接,选择 true;网页版选择 false
                $resp = $c->execute ($req);
                $res = object2Array ($resp);

                if (isset ($res["taobaoke_items"]["taobaoke_item"]) ) {
                    $links = $res["taobaoke_items"]["taobaoke_item"];
                    foreach ($links as $value) {
                        $memcache->set ($value["num_iid"], $value["click_url"], MEMCACHE_COMPRESSED, 0);
                        $click_urls[ (string) $value["num_iid"]] = $value["click_url"];
                    }
                }

                unset ($tbapi_num_iids_arr_sp);
                unset ($tbapi_num_iids);
                unset ($resp);
                unset ($res);
                unset ($links);
                unset ($value);
            }
        }
    }

    foreach ($num_iids AS $num_iid) {
        if (!isset ($click_urls[$num_iid]) ) {
            $memcache->set ($num_iid, "", MEMCACHE_COMPRESSED, 0);
            $click_urls[ (string) $num_iid] = "";
        }
    }

    $memcache->close();
    return $click_urls;
}

//演示
$num_iids[] = "13583512568";
$num_iids[] = "10809380078";
$num_iids[] = "10809380079";
$click_urls = get_taobaoke_link ($num_iids);
var_dump ($click_urls);
? >


网友评论    (发表评论)

共1 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...