php如何获得网址跳转之后的网址

我们在获取其他网站的图片或视频地址的时候,有时会遇到对方的网站地址为了安全或是防盗链,而做了跳转。我们看一下下面的例子:

访问此网址:http://news.mkq.online/

直接跳转到:http://news.mkq.online/category-10.html

这个时候我们要怎么解决这个问题呢?利用get_headers函数,读取:Location值。废话就不多了,看以下代码:

我们先看一下get_headers函数能获取那些信息。
1
<?php
2
$url = "http://news.mkq.online/";
3
print_r(get_headers($url));
4
?>

显示的效果为:
Array
(
[0] => HTTP/1.1 302 Moved Temporarily
[1] => Server: nginx/1.0.10
[2] => Date: Thu, 30 Aug 2012 17:59:50 GMT
[3] => Content-Type: text/html
[4] => Content-Length: 161
[5] => Connection: close
[6] => Location: http://news.mkq.online/category-4.html
[7] => HTTP/1.1 200 OK
[8] => Date: Thu, 30 Aug 2012 17:59:50 GMT
[9] => Server: PWS/8.0.9.3
[10] => X-Px: ht h0-s1003.p0-foc.cdngp.net
[11] => Cache-Control: max-age=300
[12] => Expires: Thu, 30 Aug 2012 18:02:47 GMT
[13] => Age: 123
[14] => Content-Length: 217344
[15] => Content-Type: image/jpeg
[16] => Last-Modified: Mon, 13 Aug 2012 08:49:02 GMT
[17] => Connection: close
)

最终代码:
01
<?php
02
function isfile($url)
03
{
04
$isfile = get_headers($url);
05
$result = str_replace("Location: ","",$isfile[6]);
06
return $result;
07
}
08
$url = "http://news.mkq.online/category-5.html";
09
echo isfile($url);
10
?>

您可以根据自己的项目需求,扩展此代码。

猜你喜欢

转载自blog.51cto.com/14160008/2340102