欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

如何通过PHP得到此URL跳转后的URL

程序员文章站 2024-04-03 23:19:46
...
http://www.chong4.com.cn/cydb/go.php?7218_29882_22t

他是如何跳转的~~
如何通过PHP得到此URL跳转后的URL


回复讨论(解决方案)

如果不是在代码内跳转,估计要用socket才能抓到header

curl好像也有获取header的,你查查

估计是根据后面的变量实现跳转的

fsockopen方式获取这个页面,分析里面的Location后获得跳转地址。

$headers = get_headers('http://www.chong4.com.cn/cydb/go.php?7218_29882_22t', true);if(is_array($headers['Location'])){    $headers['Location'] = array_pop($headers['Location']);}$script = file_get_contents($headers['Location']);echo $script;

它最后的跳转像是JS来做的,简单的做法是你找出它的规律,提取出它的网址内容

通过 302 跳转到 'http://s.click.taobao.com/t_js?tu=http%3A%2F%2Fs.click.taobao.com%2Ft%3Fe%3DzGU34CA7K%252BPkqB07S4%252FK0CFcRfH0G7DbPkiN9MMH7EkQ%252B3KnWlM5fPrbcF5EKeNJ3Ts8ijJ4%252F77oX8O2iw1qEuhEhgaut73j9hJ3YPtNYm616DyrkK0aE1E31WN8TefmpCriY9EJ5O4JCWiRap3Rj1hfNxI2HSqhk8lK01rAylx5%252F9fHp6i%252FPRGYAGeegVo%252F%26spm%3D2014.12231445.1.0%26u%3D22t7218%26ref%3D%26et%3DjFBB1tzvZVjt5A%253D%253D
可以得到一段 js 代码
其中有 qs = location.search.split("?")[location.search.split("?").length-1].split("&");
所以需要用上述url 替换掉 location.search
执行js代码后,得到
type=text/javascript charset=UTF-8>

type=text/javascript charset=UTF-8>

type=text/javascript charset=UTF-8>

type=text/javascript charset=UTF-8>

frameBorder=0> frameBorder=0>

你可以继续跟踪那些js文件中的代码

本帖最后由 xuzuning 于 2013-01-17 13:01:04 编辑
通过 302 跳转到 'http://s.click.taobao.com/t_js?tu=http%3A%2F%2Fs.click.taobao.com%2Ft%3Fe%3DzGU34CA7K%252BPkqB07S4%252FK0CFcRfH0G7DbPki……


http://s.click.taobao.com/t_js?tu=http%3A%2F%2Fs.click.taobao.com%2Ft%3Fe%3DzGU34CA7K%252BPkqB07S4%252FK0CFcRfH0G7DbPkiN9MMH7EkQ%252B3KnWlM5fPrbcF5EKeNJ3Ts8ijJ4%252F77oX8O2iw1qEuhEhgaut73j9hJ3YPtNYm616DyrkK0aE1E31WN8TefmpCriY9EJ5O4JCWiRap3Rj1hfNxI2HSqhk8lK01rAylx5%252F9fHp6i%252FPRGYAGeegVo%252F%26spm%3D2014.12231445.1.0%26u%3D22t7218%26ref%3D%26et%3DjFBB1tzvZVjt5A%253D%253D

需要的就是这段,如何取得到?

$url = 'http://www.chong4.com.cn/cydb/go.php?7218_29882_22t';$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_HEADER, true);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);$content = curl_exec($ch);echo $content;
得到

HTTP/1.1 301 Moved Permanently
Server: nginx/1.0.15
Date: Thu, 17 Jan 2013 06:48:10 GMT
Content-Type: text/html
Connection: keep-alive
X-Powered-By: PHP/5.2.17
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Last-Modified: Thu, 17 Jan 2013 06:48:10 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
Location: http://s.click.taobao.com/t?e=zGU34CA7K%2BPkqB07S4%2FK0CFcRfH0G7DbPkiN9MMH7EkQ%2B3KnWlM5fPrbcF5EKeNJ3Ts8ijJ4%2F77oX8O2iw1qEuhEhgaut73j9hJ3YPtNYm616DyrkK0aE1E31WN8TefmpCriY9EJ5O4JCWiRap3Rj1hfNxI2HSqhk8lK01rAylx5%2F9fHp6i%2FPRGYAGeegVo%2F&spm=2014.12231445.1.0&u=22t7218
Content-Length: 0

HTTP/1.1 302 Moved Temporarily
Server: Tengine
Date: Thu, 17 Jan 2013 06:48:22 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: close
Location: http://s.click.taobao.com/t_js?tu=http%3A%2F%2Fs.click.taobao.com%2Ft%3Fe%3DzGU34CA7K%252BPkqB07S4%252FK0CFcRfH0G7DbPkiN9MMH7EkQ%252B3KnWlM5fPrbcF5EKeNJ3Ts8ijJ4%252F77oX8O2iw1qEuhEhgaut73j9hJ3YPtNYm616DyrkK0aE1E31WN8TefmpCriY9EJ5O4JCWiRap3Rj1hfNxI2HSqhk8lK01rAylx5%252F9fHp6i%252FPRGYAGeegVo%252F%26spm%3D2014.12231445.1.0%26u%3D22t7218%26ref%3D%26et%3DjFBB1ttOjF2GRA%253D%253D
Expires: Thu, 17 Jan 2013 06:48:22 GMT
Cache-Control: max-age=0

HTTP/1.1 200 OK
Server: Tengine
Date: Thu, 17 Jan 2013 06:48:22 GMT
Content-Type: text/html; charset=GBK
Content-Length: 2267
Last-Modified: Tue, 15 Jan 2013 01:49:17 GMT
Connection: close
Vary: Accept-Encoding
Expires: Thu, 17 Jan 2013 06:48:22 GMT
Cache-Control: max-age=0
Accept-Ranges: bytes