从URL获取重定向的URL

时间:2013-03-08 15:03:45

标签: php curl google-places-api http-status-code-302

标题非常含糊,但实质上是发生的事情是我用以下网址调用Google Places Photo API

https://maps.googleapis.com/maps/api/place/photo?key=123456789&photoreference=CnRvAAAAV_35nLjUhcQXkoVdwN2YGP58Z3trNMDCRXznXqR2_0FbxXv60ssT2JN0ryI_ZP9-371u3JycqlH5oxLy8-bo2IkbkAfWD7fjyiytcEtWmk76Cseyxj9OlDozspXy8Cu7NFphl4N1AXSnj6QadSy6fxIQvc6Kiai-6HxMphQ7WCmYpBoUwxVnwEHl5zo0EbuoWCObJYTmAuA&maxwidth=400&maxheight=400&sensor=false

(我已更改了我的API密钥)

通过浏览器访问此链接时,它会重定向到其他网址:

https://lh3.googleusercontent.com/-WjnhIv4ry4I/T6Wg4kRb4kI/AAAAAAAuqqc/t6yVdN-jcC0/s1600-w220-h151/City%2BRestaurant

我需要一种方法来使用PHP获取第二个URL。使用cURL给我一个302“文件已移到这里”的消息。

任何人都知道如何通过PHP获得第二个网址?

1 个答案:

答案 0 :(得分:2)

使用curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);使用curl发出请求,这会导致curl跟随重定向。

然后,您可以使用curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);,它将为您提供卷曲提取的最后一个有效网址。

或者,您可以将CURLOPT_FOLLOWLOCATION设置为false,并将CURLOPT_HEADERS设置为true,并使用简单的正则表达式自行解析重定向位置。