php获取当前域名

来源:undefined 2025-06-14 14:55:59 0

在PHP中,可以使用`$_SERVER`超全局变量来获取当前域名。具体步骤如下:

1. 获取`$_SERVER[HTTP_HOST]`的值。`$_SERVER[HTTP_HOST]`包含了当前请求的域名或IP地址。

```php

$domain = $_SERVER[HTTP_HOST];

```

2. 判断当前请求是否使用了HTTPS协议。如果使用了HTTPS协议,需要在域名前面添加`https://`前缀;如果没有使用HTTPS协议,需要在域名前面添加`http://`前缀。

```php

$protocol = isset($_SERVER[HTTPS]) && $_SERVER[HTTPS] === on ? https:// : http://;

$domain = $protocol . $domain;

```

3. 获取当前请求的端口号。可以使用`$_SERVER[SERVER_PORT]`来获取。

```php

$port = $_SERVER[SERVER_PORT];

```

4. 如果请求的端口号不是80(HTTP)或443(HTTPS),需要将端口号添加到域名后面。

```php

if (($protocol === http:// && $port !== 80) || ($protocol === https:// && $port !== 443)) {

$domain .= : . $port;

}

```

最终,通过以上步骤,可以得到当前域名的完整URL。例如,如果当前请求的域名为`example.com`,使用了HTTPS协议,并且端口号为443,那么得到的完整URL为`https://example.com`。

值得注意的是,以上方法获取的是当前请求的域名,而不是当前文件所在的域名。如果需要获取当前文件所在的域名,可以使用`__DIR__`魔术常量和`$_SERVER[DOCUMENT_ROOT]`来获取当前执行文件的*路径,然后使用`parse_url()`函数来解析域名。

```php

$currentFile = __DIR__;

$documentRoot = $_SERVER[DOCUMENT_ROOT];

$relativePath = str_replace($documentRoot

$currentFile);

$url = $domain . $relativePath;

```

需要注意的是,`__DIR__`魔术常量返回的是当前执行文件的所在目录的*路径,`$_SERVER[DOCUMENT_ROOT]`返回的是Web服务器的根目录的*路径。

最新文章