gpt4 book ai didi

php - 如何获取下载链接的 URL

转载 作者:行者123 更新时间:2023-12-04 06:00:03 24 4
gpt4 key购买 nike

我正在尝试解析包含一些链接的页面。如果遵循这些链接,将重定向到一些文件以供下载。

例如,<a href="http://example.com/file.php"> Download </a>重定向到 <a href="http://example.com/1.pdf" .

我不想下载文件,我只想获取文件链接(在这种情况下 http://example.com/1.pdf )。

我正在尝试这个:

curl_setopt($ch, CURLOPT_RETURNTRANSFER, FALSE);     // Return in string
curl_setopt($ch, CURLOPT_URL, $url);
curl_exec($ch);
var_dump(curl_getinfo($ch));

但是,它给了我文件内容。

有谁知道如何做到这一点?

==编辑==
谢谢你们。我是这样解决的:
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);

现在, $info包含标题,我可以从中获得链接。

最佳答案

将输出发送到屏幕的原因是您告诉 cURL 这样做。如果要将响应存储在变量中,请执行以下行:
curl_setopt($ch, CURLOPT_RETURNTRANSFER, FALSE);
应该读:
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
然后,实际从 curl_exec 中检索返回的输出像这样:
$output = curl_exec($ch);
一旦您从 $output 中的远程页面获得了返回的 HTML 内容。您可以使用的变量 DOMdocs或正则表达式( 但最好是 DOM )来解析您想要的任何信息。

更新

我不知道,因为这个问题措辞含糊:实际上是否发生了 Location header 重定向?如果是这样,您需要按照@heiko 的建议进行操作,以防止 cURL 跟随重定向并检索 header 。然后就可以轻松解析位置头的内容了:

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

关于php - 如何获取下载链接的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9020592/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com