Php 如何获取下载链接的URL

Php 如何获取下载链接的URL,php,curl,Php,Curl,我试图解析一个包含一些链接的页面。如果遵循这些链接,将重定向到一些要下载的文件 例如,重定向到输出被发送到屏幕的原因是您告诉cURL这样做。如果要将响应存储在变量中,请单击以下行: curl\u setopt($ch,CURLOPT\u RETURNTRANSFER,FALSE) 应改为: curl\u setopt($ch,CURLOPT\u RETURNTRANSFER,TRUE) 然后,实际从curl\u exec检索返回的输出,如下所示: $output=curl\u exec($ch)

我试图解析一个包含一些链接的页面。如果遵循这些链接,将重定向到一些要下载的文件


例如,
重定向到
输出被发送到屏幕的原因是您告诉cURL这样做。如果要将响应存储在变量中,请单击以下行:

curl\u setopt($ch,CURLOPT\u RETURNTRANSFER,FALSE)

应改为:

curl\u setopt($ch,CURLOPT\u RETURNTRANSFER,TRUE)

然后,实际从
curl\u exec
检索返回的输出,如下所示:

$output=curl\u exec($ch)

$output
变量中从远程页面返回HTML内容后,可以使用或regex(,但最好是DOM)解析出所需的任何信息

更新

我说不出来,因为问题措辞含糊不清:是否确实发生了位置头重定向?如果是这样,您需要按照@heiko的建议来防止cURL遵循重定向并检索头。然后,您可以轻松解析位置标头的内容:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE);
curl_setopt($ch, CURLINFO_HEADER, TRUE); // add header output

如果您想在页面上显示HTML源代码,请使用
RETURN TRANSFER as 1
,也可以使用
htmlentities()
,否则只需
echo
变量(显示页面[重定向到谷歌])


使用
$varx
变量,使用正则表达式来匹配所需的数据

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLINFO_HEADER_OUT, TRUE);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_NOBODY, TRUE);
curl_exec($ch);
$info = curl_getinfo($ch);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE);
curl_setopt($ch, CURLINFO_HEADER, TRUE); // add header output
# make sure to not follow Location: Header
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE);
# add Response Header to Output, so that you can find the Location-Header in there!
curl_setopt($ch, CURLINFO_HEADER_OUT, TRUE);
<?php
$url = "http://www.google.co.in";
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);     // Return in string
curl_setopt($ch, CURLOPT_URL, $url);
$varx = curl_exec($ch);
echo htmlentities($varx);
?>