php获取重定向后的地址怎么写

worktile 其他 204

回复

共3条回复 我来回复
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    要获取重定向后的地址,可以使用以下两种方法来实现:
    1. 使用CURL库
    使用CURL库可以实现发送HTTP请求并获取重定向后的地址。具体的代码如下:

    “`php
    function getRedirectUrl($url)
    {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($ch);
    $headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
    $header = substr($response, 0, $headerSize);
    preg_match(‘/Location: (.*?)\n/’, $header, $matches);
    curl_close($ch);
    if (isset($matches[1])) {
    return trim($matches[1]);
    } else {
    return false;
    }
    }

    // 使用例子
    $url = ‘http://example.com’;
    $redirectUrl = getRedirectUrl($url);
    if ($redirectUrl) {
    echo “重定向后的地址:” . $redirectUrl;
    } else {
    echo “未发生重定向”;
    }
    “`

    2. 使用file_get_contents函数
    使用file_get_contents函数可以发送HTTP请求并获取重定向后的地址。具体的代码如下:

    “`php
    function getRedirectUrl($url)
    {
    $headers = get_headers($url, 1);
    if(isset($headers[‘Location’])) {
    return is_array($headers[‘Location’]) ? end($headers[‘Location’]) : $headers[‘Location’];
    } else {
    return false;
    }
    }

    // 使用例子
    $url = ‘http://example.com’;
    $redirectUrl = getRedirectUrl($url);
    if ($redirectUrl) {
    echo “重定向后的地址:” . $redirectUrl;
    } else {
    echo “未发生重定向”;
    }
    “`

    以上两种方法都可以实现获取重定向后的地址,根据你的需求选择一种适合你的方法即可。

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在PHP中,可以使用curl库来获取重定向后的地址。以下是获取重定向后的地址的示例代码:

    “`php
    function getRedirectedUrl($url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    // 设置CURLOPT_FOLLOWLOCATION选项以支持重定向
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    // 设置CURLOPT_RETURNTRANSFER选项以返回结果而不是直接输出到浏览器
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    // 执行请求并获取重定向后的地址
    $redirectedUrl = curl_exec($ch);
    // 关闭curl会话
    curl_close($ch);

    return $redirectedUrl;
    }

    // 调用函数并打印重定向后的地址
    $url = “http://example.com”; // 要获取重定向后的地址的原始地址
    $redirectedUrl = getRedirectedUrl($url);
    echo “重定向后的地址:” . $redirectedUrl;
    “`

    上述代码中,首先使用 `curl_init()` 函数创建一个cURL会话,然后使用 `curl_setopt()` 函数设置会话选项。其中, `CURLOPT_URL` 选项用于设置要访问的URL, `CURLOPT_FOLLOWLOCATION` 选项用于开启重定向跟踪, `CURLOPT_RETURNTRANSFER` 选项用于设置返回结果而不是直接输出到浏览器。

    接着,调用 `curl_exec()` 函数执行cURL请求,并将返回的重定向后的地址保存到变量中。最后,使用 `curl_close()` 函数关闭cURL会话。

    最后,打印出重定向后的地址。

    通过以上代码,您可以获取到重定向后的地址。

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

    在PHP中,可以使用curl库来获取重定向后的地址。下面是具体的操作步骤:

    1. 确保你的PHP环境已经安装了curl扩展。你可以通过运行`phpinfo()`函数来检查,看看curl扩展是否已经启用。

    2. 使用curl_init()函数初始化一个curl会话。

    “`php
    $ch = curl_init();
    “`

    3. 设置curl选项。通过curl_setopt()函数来设置选项。在这个步骤中,你需要设置CURLOPT_FOLLOWLOCATION选项为true,以启用重定向跟踪。还可以设置CURLOPT_RETURNTRANSFER选项为true,以确保返回响应内容而不是直接输出。

    “`php
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    “`

    4. 设置要访问的URL。使用curl_setopt()函数来设置CURLOPT_URL选项。

    “`php
    curl_setopt($ch, CURLOPT_URL, “http://example.com”);
    “`

    5. 执行curl请求。通过curl_exec()函数来执行curl请求。

    “`php
    $response = curl_exec($ch);
    “`

    6. 获取重定向后的地址。可以使用curl_getinfo()函数来获取重定向后的地址。通过指定CURLOPT_EFFECTIVE_URL选项,函数将返回最后一个重定向的URL。

    “`php
    $redirectedUrl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
    “`

    7. 关闭curl会话。使用curl_close()函数来关闭curl会话。

    “`php
    curl_close($ch);
    “`

    完整的代码示例:

    “`php
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_URL, “http://example.com”);
    $response = curl_exec($ch);
    $redirectedUrl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
    curl_close($ch);
    echo “重定向后的地址是:” . $redirectedUrl;
    “`

    通过以上步骤,你就可以在PHP中获取重定向后的地址了。

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

400-800-1024

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

分享本页
返回顶部