php 怎么获得链接的真实地址

worktile 其他 223

回复

共3条回复 我来回复
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    要获取链接的真实地址,可以使用以下方法:

    1. 使用cURL库:cURL是一个强大的用于进行网络传输的库。可以使用cURL库发送HTTP请求,并获取到目标链接的真实地址。具体步骤如下:
    “`php
    $url = ‘目标链接的地址’;
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $res = curl_exec($ch);
    $realUrl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
    curl_close($ch);

    echo “真实地址为:” . $realUrl;
    “`
    在上述代码中,我们通过设置`CURLOPT_FOLLOWLOCATION`为true,使cURL库能够跟随重定向,最终获取到真实地址。然后使用`curl_getinfo`函数,传入参数`CURLINFO_EFFECTIVE_URL`来获取到最终的URL。

    2. 使用HTTP头部获取:有些网站在重定向时会在HTTP头部的`Location`字段中包含真实地址。可以通过以下代码来获取:
    “`php
    $url = ‘目标链接的地址’;
    $headers = get_headers($url, 1);
    $realUrl = $headers[‘Location’];

    echo “真实地址为:” . $realUrl;
    “`
    在上述代码中,我们使用`get_headers`函数来获取到目标链接的HTTP头部信息,然后从头部信息中获取到`Location`字段的值,即真实地址。

    需要注意的是,以上方法可能会受到服务器的限制或者反爬措施的影响,无法获取到真实地址。此外,部分网站可能通过JavaScript进行跳转,以上方法可能无法获取到真实地址。在处理这种情况时,可能需要使用其他技术手段来解决。

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    要获得链接的真实地址,可以使用PHP中的`get_headers()`函数或者`curl`库。

    1. 使用`get_headers()`函数获得链接的真实地址:
    “`php
    $url = “https://www.example.com”;
    $headers = get_headers($url, 1);
    $realUrl = $headers[‘Location’];
    “`

    2. 使用`curl`库获得链接的真实地址:
    “`php
    $url = “https://www.example.com”;
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_HEADER, true);
    curl_setopt($ch, CURLOPT_NOBODY, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_exec($ch);
    $realUrl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
    curl_close($ch);
    “`

    3. 解析重定向链以获得所有重定向的真实地址:
    “`php
    function getRealUrl($url) {
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_HEADER, true);
    curl_setopt($ch, CURLOPT_NOBODY, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_exec($ch);
    $redirectUrl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
    curl_close($ch);

    if ($redirectUrl != $url) {
    return getRealUrl($redirectUrl);
    }

    return $url;
    }

    $realUrl = getRealUrl(“https://www.example.com”);
    “`

    4. 处理重定向循环的情况:
    “`php
    function getRealUrl($url, $limit = 10) {
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_HEADER, true);
    curl_setopt($ch, CURLOPT_NOBODY, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_exec($ch);
    $redirectUrl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
    curl_close($ch);

    if ($redirectUrl != $url) {
    if ($limit > 0) {
    return getRealUrl($redirectUrl, $limit – 1);
    } else {
    return $url;
    }
    }

    return $url;
    }

    $realUrl = getRealUrl(“https://www.example.com”);
    “`

    5. 使用`file_get_contents`函数获得重定向后的真实地址:
    “`php
    function getRealUrl($url) {
    $headers = get_headers($url, 1);
    if (isset($headers[‘Location’])) {
    $redirectUrl = $headers[‘Location’];
    if (is_array($redirectUrl)) {
    $redirectUrl = end($redirectUrl);
    }
    return getRealUrl($redirectUrl);
    }
    return $url;
    }

    $realUrl = getRealUrl(“https://www.example.com”);
    “`

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    要获取链接的真实地址,可以使用以下几种方法:

    1. 使用cURL库:cURL是一个开源的网络库,可以用来发送HTTP请求并获取响应。我们可以使用cURL来获取链接的真实地址。

    “`php
    $url = ‘http://example.com’;
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $result = curl_exec($ch);
    $info = curl_getinfo($ch);
    curl_close($ch);

    $realUrl = $info[‘url’];
    echo $realUrl;
    “`

    在上面的代码中,我们使用`curl_setopt()`函数设置了两个选项,`CURLOPT_FOLLOWLOCATION`表示自动跟随重定向,`CURLOPT_RETURNTRANSFER`表示将响应保存到变量中而不是输出到屏幕上。然后通过`curl_getinfo()`函数获取请求的一些信息,其中包括真实的URL地址。

    2. 使用get_headers()函数:get_headers()函数可以获取HTTP响应的头部信息。我们可以使用这个函数来获取链接的真实地址。

    “`php
    $url = ‘http://example.com’;
    $headers = get_headers($url, 1);
    $realUrl = $headers[‘Location’];
    echo $realUrl;
    “`

    在上面的代码中,我们通过调用get_headers()函数获取链接的响应头部信息,并将其保存到$headers变量中。然后我们可以通过$headers变量获取真实的URL地址,它位于Location键下。

    3. 使用file_get_contents()函数:file_get_contents()是一个用来读取文件内容的函数,但是它也可以用来获取URL的内容。我们可以通过file_get_contents()函数获取链接的真实地址。

    “`php
    $url = ‘http://example.com’;
    $content = file_get_contents($url);
    $realUrl = $http_response_header[0];
    echo $realUrl;
    “`

    在上面的代码中,我们使用file_get_contents()函数获取URL的内容,并将其保存到$content变量中。然后我们可以通过$http_response_header变量获取真实的URL地址,它位于数组的第一个元素。

    注意:这些方法都可以获取链接的真实地址,但是要注意有些链接可能会有多个重定向,所以需要根据实际情况做出相应的调整。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部