使用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
