php怎么获取完整地址

不及物动词 其他 179

回复

共3条回复 我来回复
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在PHP中,要获取完整地址,可以通过以下几种方法:

    1. 使用$_SERVER全局变量

    PHP的内置全局变量$_SERVER可以获取当前页面的相关信息,包括URL地址。其中,$_SERVER[‘REQUEST_URI’]可以获取完整的URI(Uniform Resource Identifier)地址,包括查询参数和锚点。以下是一个示例代码:

    “`php
    $fullUrl = ‘http’;
    if(isset($_SERVER[‘HTTPS’]) && $_SERVER[‘HTTPS’] === ‘on’){
    $fullUrl .= ‘s’;
    }
    $fullUrl .= ‘://’.$_SERVER[‘HTTP_HOST’].$_SERVER[‘REQUEST_URI’];

    echo $fullUrl;
    “`

    2. 使用$_SERVER[‘HTTP_REFERER’]

    $_SERVER[‘HTTP_REFERER’]可以获取当前页面的引用(前一页的URL地址)。如果当前页面是通过链接跳转过来的,$_SERVER[‘HTTP_REFERER’]会包含前一页的完整地址。例如:

    “`php
    if(isset($_SERVER[‘HTTP_REFERER’])){
    echo $_SERVER[‘HTTP_REFERER’];
    }
    “`

    需要注意的是,$_SERVER[‘HTTP_REFERER’]并非所有浏览器都会发送,因此可能会存在一些不准确或缺失的情况。

    3. 使用JavaScript

    除了在服务器端获取完整地址外,还可以在客户端使用JavaScript获取。通过window.location.href可以返回当前页面的完整URL地址。以下是一个示例代码:

    “`php

    “`

    以上是获取完整地址的几种常用方法,可以根据具体需求选择适合的方式。通过$_SERVER全局变量和$_SERVER[‘HTTP_REFERER’]可以在服务器端获取,而使用JavaScript可以在客户端获取。

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

    获取完整地址可以通过以下几种方式实现:

    1. 使用$_SERVER[‘REQUEST_URI’]变量
    $_SERVER[‘REQUEST_URI’]包含了当前URL的路径部分和查询字符串部分,可以使用该变量获取完整的URL地址。例如:
    “`php
    $fullUrl = $_SERVER[‘REQUEST_URI’];
    “`
    请注意,该变量不包含主机名部分。

    2. 使用$_SERVER[‘HTTP_HOST’] 和 $_SERVER[‘REQUEST_URI’]变量
    可以结合使用$_SERVER[‘HTTP_HOST’]和$_SERVER[‘REQUEST_URI’]变量来获取完整的URL地址。例如:
    “`php
    $fullUrl = $_SERVER[‘HTTP_HOST’] . $_SERVER[‘REQUEST_URI’];
    “`
    该方法会将主机名和路径部分拼接起来,得到完整的URL地址。

    3. 使用$_SERVER[‘HTTPS’] 和 $_SERVER[‘HTTP_HOST’] 和 $_SERVER[‘REQUEST_URI’]变量
    如果要获取使用HTTPS协议的完整URL地址,可以结合使用$_SERVER[‘HTTPS’]、$_SERVER[‘HTTP_HOST’]和$_SERVER[‘REQUEST_URI’]变量。例如:
    “`php
    $fullUrl = $_SERVER[‘HTTPS’] . “://” . $_SERVER[‘HTTP_HOST’] . $_SERVER[‘REQUEST_URI’];
    “`
    该方法会将HTTPS协议、主机名和路径部分拼接起来,得到完整的URL地址。

    4. 使用$_SERVER[‘SCRIPT_URI’]变量
    $_SERVER[‘SCRIPT_URI’]包含了当前脚本的URL地址,可以使用该变量获取完整的URL地址。例如:
    “`php
    $fullUrl = $_SERVER[‘SCRIPT_URI’];
    “`
    请注意,该变量不包含查询字符串部分。

    5. 使用parse_url()函数
    可以使用parse_url()函数解析URL地址的各个部分,然后再通过拼接得到完整的URL地址。例如:
    “`php
    $parts = parse_url($url);
    $scheme = $parts[‘scheme’];
    $host = $parts[‘host’];
    $path = $parts[‘path’];
    $query = $parts[‘query’];

    $fullUrl = $scheme . “://” . $host . $path . ‘?’ . $query;
    “`
    其中,$url是要解析的URL地址。该方法可以解析包含主机名、协议、路径和查询字符串部分的完整URL地址。

    总结:
    以上是几种获取完整地址的方法,根据具体的需求和使用环境选择合适的方式。无论使用哪种方式,都可以有效获取完整的URL地址。

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

    要获取完整地址,可以使用PHP的$_SERVER全局变量来获取。$_SERVER是一个包含了诸多信息的数组,其中包括了当前请求的相关信息,如请求的方法、URL、以及其他环境变量等。

    在$_SERVER数组中,我们可以使用以下键来获取完整地址:
    – $_SERVER[‘SERVER_NAME’]:当前运行脚本所在的服务器的主机名;
    – $_SERVER[‘SERVER_PORT’]:当前运行脚本所在的服务器的端口号;
    – $_SERVER[‘REQUEST_URI’]:当前请求的 URI,包括路径和查询字符串;
    – $_SERVER[‘QUERY_STRING’]:当前请求的查询字符串。

    下面是一个获取完整地址的示例代码:

    “`php
    // 获取协议
    $protocol = isset($_SERVER[‘HTTPS’]) && $_SERVER[‘HTTPS’] === ‘on’ ? ‘https://’ : ‘http://’;

    // 获取主机名
    $host = $_SERVER[‘SERVER_NAME’];

    // 获取端口号
    $port = $_SERVER[‘SERVER_PORT’];

    // 获取路径和查询字符串
    $path = $_SERVER[‘REQUEST_URI’];

    // 获取查询字符串
    $queryString = $_SERVER[‘QUERY_STRING’];

    // 拼接完整地址
    $fullUrl = $protocol . $host . ($port == 80 || $port == 443 ? ” : ‘:’ . $port) . $path . ($queryString ? ‘?’ . $queryString : ”);

    // 输出完整地址
    echo $fullUrl;
    “`

    以上代码中,首先通过判断`$_SERVER[‘HTTPS’]`的值来确定协议为`http://`还是`https://`,然后使用`$_SERVER[‘SERVER_NAME’]`获取主机名,再使用`$_SERVER[‘SERVER_PORT’]`获取端口号,使用`$_SERVER[‘REQUEST_URI’]`获取路径和查询字符串,最后使用`$_SERVER[‘QUERY_STRING’]`获取查询字符串。

    通过拼接这些信息,即可得到完整的地址。需要注意的是,端口号只有在非80或443时才需要在主机名后面拼接,查询字符串只有在存在时才需要在地址的最后拼接。

    总结,通过使用$_SERVER全局变量中的相关键来获取服务器的主机名、端口号、请求的路径和查询字符串,可以拼接出完整的地址。

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

400-800-1024

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

分享本页
返回顶部