如何在 PHP 中获取 302 重定向 URL 的 Location 标头?

发布于 2024-08-28 09:27:16 字数 171 浏览 10 评论 0 原文

我正在尝试找到一种通用的方法来扩展大多数(如果不是全部)缩短的 URL。我知道 bit.ly、TinyURL、goo.gl 等短 URL 使用 302 重定向方法将您重定向到另一个网站。如何在 php 中向缩短的 URL 发出 HEAD 请求并获取标头的“位置”部分?

请帮我解决这个问题。

谢谢

I am trying to find a universal way to expand most if not all of the shortened URLs out there. I know short URLs such as bit.ly, TinyURL, goo.gl, etc use the 302 redirection method to redirect you to another site. How can I make a HEAD request to the shortened URL in php and get the "Location" part of the header?

Please help me with this.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我不咬妳我踢妳 2024-09-04 09:27:16

大家还是忘掉吧。 :)通过一些互联网搜索,我发现了这个:

使用 PHP 和 CURL 将短网址扩展为原始网址 — Hasin Hayder

它向我展示了如何做到这一点。

Forget it everyone. :) With some internet searching, I found this:

expanding short url to original url using PHP and CURL — Hasin Hayder

It shows me exactly how to do this.

开始看清了 2024-09-04 09:27:16

您需要使用 CURL。您可以设置触发读取标头的回调函数。

//register a callback function which will process the headers
 curl_setopt($ch, CURLOPT_HEADERFUNCTION, 'readHeader');


function readHeader($ch, $header)
{ 
    global $location;

    // we have to follow 302s automatically or cookies get lost.
    if (eregi("Location:",$header) )
    {
        $location= substr($header,strlen("Location: "));
    }

    return strlen($header);
}

You need to use CURL. You can set a callback function that fires to read headers.

//register a callback function which will process the headers
 curl_setopt($ch, CURLOPT_HEADERFUNCTION, 'readHeader');


function readHeader($ch, $header)
{ 
    global $location;

    // we have to follow 302s automatically or cookies get lost.
    if (eregi("Location:",$header) )
    {
        $location= substr($header,strlen("Location: "));
    }

    return strlen($header);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文