2 tieyu2014 tieyu2014 于 2016.03.16 13:28 提问

php 如何获取短链接跳转后的真实地址?

最后在做一个项目,需要获取[手机淘宝分享]的短链接 跳转后的最终URL,需要从这个URL中拿到商品的ID。

在网上也淘了不少办法,但不成功。

短链接:http://b.mashort.cn/h.OhrnJ?cv=AADRopTu&sm=eeb5d6

希望有位能帮我解答一下。谢谢

5个回答

caozhy
caozhy   Ds   Rxr 2016.03.16 19:18
tieyu2014
tieyu2014   2016.03.16 22:03
     $url='http://b.mashort.cn/h.OhrnJ?cv=AADRopTu&sm=eeb5d6';
function getrealurl($url){
$header = get_headers($url,1);
if (strpos($header[0],'301') || strpos($header[0],'302')) {
    if(is_array($header['Location'])) {
        return $header['Location'][count($header['Location'])-1];
    }else{
        return $header['Location'];
    }
}else {
    return $url;
}
}

echo getrealurl($url);
exit;

没有成功,还是一样的。没那么简单,网上淘了很多办法试了,都不成功

tieyu2014
tieyu2014   2016.03.16 22:04
a5740456
a5740456   2016.03.20 09:12

每个短链接网站的计算方式不一样,你可以自己写一个加密函数,把url加密成一个字符串,然后在写一个解密的函数,把这个地址转回来的,要么你可以根据编号的方式存数据库,每次短链接进来的时候你去查询一下数据库,得到真实的url链接然后通过header跳转即可

tieyu2014
tieyu2014 感谢你的回答,不是我要做短链接,是我要得到淘宝短链接跳转后的真实地址,那这个跳转了很多次,难获取得的到,不知道用什么办法获取
2 年多之前 回复
flight9
flight9   2016.11.22 12:55

mashort的短连接不是用301,302的方式转跳的,是用js转跳的,前端我也不熟,只能帮你到这里

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
php获取跳转后的真实链接
php // echo get_redirect_url('http://www.oschina.net/action/project/go?id=1089&p=home'); //输出结果为:http://code.google.com/android/ function get_redirect_url($url){ $redirect_url = null; $url_p
用PHP对获得淘宝客的真实地址和内容
利用PHP CURL获取淘宝客链接的真实地址和内容,其实淘宝那边只是做了几次跳转,外加判断了一次refer,这样的话,普通的curl或者一些其他函数就不能得到最终的结果了。 /** * 获取淘宝客的真实地址和内容 * * @author cnxzcxy * @version $$Id$$ **/ function cnxzcxy_curl($url, $method = ''
php 获取301跳转后真实的url
在php采集中经常遇到有URL 301重定向的情况,如果出现了这样的情况,有可能出现造成未知的结果,因为主机名不一样了。我们的采集中主机名不能用301重定向前的URL,要用重定向之后的URL。 我在以下PHP的例子中介绍下怎么获取301定向后真实的URL,目前我知道有两种方法 1、用get_headers函数;2、用cURL 现介绍利用get_headers() 函数获取http
工具类:根据URL获取短链接,根据短链接获取真实URL
提供两个功能: 根据短网址查找真实地址 获取真实地址的短网址,如果没有,生成一个 思路:将真实地址进行md5加密,并分割生成一个6位的短链接,并保存到xml文件中,当然也可以保存到数据库中。无法实现将短链接反转成真实地址,因为md5的不可逆性。只能根据短链去持久化xml文件中去查找,这样必然会造成效率上的损失开销如下(xml文本大约80000行,约15000个短网址,读取速度:308ms,写入
PHP 取302跳转后真实 URL 的两种方法
第一种,CURL形式【感觉处理略慢,代码偏多】 ... 2. 第二种,使用 get_headers
php实现短链接系统
短链接的好处: 节省网址长度,便于社交化传播。(短信或者微博,字数长度受限制时。这样的短链接制作二维码也是易于识别。) 方便后台跟踪点击量、地域分布等用户统计。(统计流量访问,延伸可以做网址举报屏蔽。只屏蔽短链接即可,控制输出。) 规避关键词、域名屏蔽手段。 隐藏真实地址,适合做付费推广链接。 实现思路: 将传入的长链接存入数据库中,并记录创建时间,返回自增ID。 将返回的id进
PHP检测url重定向的最终地址
引言客户需求, 需要判断一个url跳转后的url是否是目标url, 于是有此文, 惯例先贴代码.代码/** * 递归检测url重定向地址, 直到重定向到rule所指地址 * 返回该地址 * * @param string $url 待检测的地址 * @param string $rule 匹配的地址 * @return mixed */ function redirect($url,
python 重定向获取真实url
楼主在做公司项目的时候遇到url重定向的问题,因此上网简单查找,作出如下结果由于使用的是语言是python所以以下是python的简单解决方案http_headers = { 'Accept': '*/*','Connection': 'keep-alive', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/
用php来获得用户的真实ip地址-绕过代理服务器
 <!--google_ad_client = "pub-5963083799350359";//336x280, ????Ӛ 07-12-7google_ad_slot = "8963629670";google_ad_width = 336;google_ad_height = 280;//-->现在很多朋友上网都用代理,特别是教育网的用户要上外
PHP获取用户的真实IP地址,非代理IP
function getClientIP(){ global $ip; if(getenv("HTTP_CLIENT_IP")){ $ip = getenv("HTTP_CLIENT_IP"); }else if(getenv("HTTP_X_FORWARDED_FOR")){ $ip = getenv("HTTP_X_FORWA