php怎么获取http请求地址吗

worktile 其他 171

回复

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

    PHP中可以使用`$_SERVER[‘REQUEST_URI’]`来获取当前的HTTP请求地址。此变量包含了当前请求的URI(统一资源标识符),即URL路径部分。
    具体代码如下:

    “`php
    $request_uri = $_SERVER[‘REQUEST_URI’];
    “`

    `$_SERVER`是一个包含了HTTP请求头、脚本位置及其他一些服务器和执行环境信息的超全局变量。其中`$_SERVER[‘REQUEST_URI’]`表示当前请求的URI。

    需要注意的是`$_SERVER[‘REQUEST_URI’]`返回的是相对路径,并且可能包含查询参数。如果只想获取不带查询参数的绝对路径,可以借助`$_SERVER[‘HTTP_HOST’]`和`$_SERVER[‘HTTPS’]`来拼接:
    “`php
    $protocol = isset($_SERVER[‘HTTPS’]) && $_SERVER[‘HTTPS’] === ‘on’ ? “https” : “http”;
    $host = $_SERVER[‘HTTP_HOST’];
    $request_uri = $_SERVER[‘REQUEST_URI’];
    $absolute_uri = $protocol . “://” . $host . $request_uri;
    “`

    以上代码中,根据`$_SERVER[‘HTTPS’]`的值来判断当前使用的协议是`http`还是`https`,然后通过`$_SERVER[‘HTTP_HOST’]`获取当前的主机名,再拼接上`$_SERVER[‘REQUEST_URI’]`即可得到绝对路径。

    需要注意,由于`$_SERVER`中的信息是由服务器提供的,因此在某些情况下,可能会存在不同的值或缺失的情况。以上代码仅提供了一种获取HTTP请求地址的方法,并不能保证适用于所有情况,具体还需根据实际情况进行调整。

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

    在PHP中,可以通过预定义变量$_SERVER来获取HTTP请求地址。$_SERVER是一个包含了HTTP请求信息的数组,其中包含了很多有用的信息,如请求的方法、脚本文件名、服务器名称、HTTP请求头等。以下是获取HTTP请求地址的方法:

    1. 获取当前页面的完整URL
    通过使用$_SERVER[‘HTTP_HOST’]和$_SERVER[‘REQUEST_URI’]变量,可以获取到当前页面的完整URL,包括协议、域名、端口号、路径和查询字符串等。示例代码如下:
    “`php
    $baseUrl = isset($_SERVER[‘HTTPS’]) && $_SERVER[‘HTTPS’] === ‘on’ ? “https” : “http”;
    $baseUrl .= “://” . $_SERVER[‘HTTP_HOST’];
    $baseUrl .= $_SERVER[‘REQUEST_URI’];

    echo $baseUrl;
    “`

    2. 获取当前页面的URL地址
    要获取当前页面的URL地址,可以使用$_SERVER[‘PHP_SELF’]变量。示例代码如下:
    “`php
    $url = “http://” . $_SERVER[‘SERVER_NAME’] . $_SERVER[‘PHP_SELF’];
    echo $url;
    “`

    3. 获取当前页面的路径
    要获取当前页面的路径,可以使用$_SERVER[‘PHP_SELF’]变量。示例代码如下:
    “`php
    $path = $_SERVER[‘PHP_SELF’];
    echo $path;
    “`

    4. 获取当前页面的文件名
    要获取当前页面的文件名,可以使用$_SERVER[‘SCRIPT_FILENAME’]变量。示例代码如下:
    “`php
    $filename = basename($_SERVER[‘SCRIPT_FILENAME’]);
    echo $filename;
    “`

    5. 获取当前页面的查询字符串
    要获取当前页面的查询字符串,可以使用$_SERVER[‘QUERY_STRING’]变量。示例代码如下:
    “`php
    $queryString = $_SERVER[‘QUERY_STRING’];
    echo $queryString;
    “`

    通过以上方法,你可以方便地获取HTTP请求地址的不同部分,以满足你的需求。需要注意的是,$_SERVER变量中的值是由Web服务器设置的,所以可能会有一些差异,具体可以参考PHP官方文档中对$_SERVER变量的说明。

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

    在PHP中,可以通过`$_SERVER`超级全局变量来获取HTTP请求的相关信息,其中包括请求地址。具体操作流程如下:

    1. 首先,在PHP代码中使用`$_SERVER[‘REQUEST_URI’]`可以获取请求的相对路径。该变量包含了当前脚本被调用的URL路径部分,不包含域名和协议。

    2. 如果需要获取完整的请求地址,可以结合`$_SERVER[‘HTTP_HOST’]`和`$_SERVER[‘REQUEST_URI’]`使用。`$_SERVER[‘HTTP_HOST’]`表示当前请求的主机名和端口号,通过拼接这两个变量可以得到完整的请求地址。

    3. 可以使用以下代码来获取完整的请求地址:

    “`
    $protocol = !empty($_SERVER[‘HTTPS’]) && $_SERVER[‘HTTPS’] !== ‘off’ || $_SERVER[‘SERVER_PORT’] == 443 ? “https://” : “http://”;
    $host = $_SERVER[‘HTTP_HOST’];
    $uri = $_SERVER[‘REQUEST_URI’];
    $requestUrl = $protocol . $host . $uri;
    “`

    上述代码中,首先判断了当前请求是否通过HTTPS协议,如果是,则将协议设置为https://,否则设置为http://。然后获取主机名和端口号,最后拼接请求的相对路径,得到完整的请求地址。

    4. 最后,可以使用`$requestUrl`变量来输出或者对请求地址进行其他操作。

    综上所述,通过使用`$_SERVER`超级全局变量,结合相对路径和主机名等信息,我们可以轻松获取到HTTP请求的地址。

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

400-800-1024

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

分享本页
返回顶部