通过php实现将淘宝s.click链接解析,淘客链接还原,获取到原始链接提取出商品id


使用PHP代码实现将淘宝客短连接s.click.taobao 还原成原始链接,并提取出商品id,注意:以下代码经测试在Apache可以正常跑,nginx 暂时无法使用。


/**
 * 获取重定向后的链接 qq: 1745000861
 * $url     链接
 * $referer 来源链接
 * $timeout 超时时间
 */
function get_redirect_url($url, $referer='', $timeout = 10) {
   $redirect_url = false;
   $ch = curl_init();
   curl_setopt($ch, CURLOPT_URL, $url);
   curl_setopt($ch, CURLOPT_HEADER, TRUE);
   curl_setopt($ch, CURLOPT_NOBODY, TRUE);//不返回请求体内容
   curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);//允许请求的链接跳转
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
   curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
   curl_setopt($ch, CURLOPT_HTTPHEADER, array(
      'Accept: */*',
      'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)',
      'Connection: Keep-Alive'));
   if ($referer) {
     curl_setopt($ch, CURLOPT_REFERER, $referer);//设置referer
   }
   $content = curl_exec($ch);
   if(!curl_errno($ch)) {
     $redirect_url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);//获取最终请求的url地址
   }
  
   return $redirect_url;
}

/**
 * 获取淘宝真实链接地址 qq: 1745000861
 * $url     链接
 * $referer 来源链接
 * $timeout 超时时间
 */
function get_tb_redirect_url($u)
{
    $rd  =  get_redirect_url($u);
    $url = explode('tu=', $rd);
    $url = urldecode($url[1]);
    return get_redirect_url($url, $rd);
}


//调用示例:

get_tb_redirect_url("https://s.click.taobao.com/vVjThGw");

//输出效果

https://item.taobao.com/item.htm?id=558697118888


在线工具测试:http://www.91tool.com/tbkurl


image.png