PHP 获取当前 URL278


在 PHP 中,获取当前 URL 的完整路径至关重要,因为它有助于各种任务,例如创建重定向、生成链接和记录请求。本文将详细介绍获取当前 URL 的多种方法,并提供示例代码以供参考。

1. $_SERVER['REQUEST_URI']

$_SERVER['REQUEST_URI'] 是一个预定义变量,它包含当前请求的 URI 部分。然而,它不包括查询字符串或协议。```php
$url = $_SERVER['REQUEST_URI'];
echo $url; // 输出示例:/path/to/
```

2. $_SERVER['QUERY_STRING']

为了检索查询字符串,可以使用 $_SERVER['QUERY_STRING'] 变量。```php
$query_string = $_SERVER['QUERY_STRING'];
echo $query_string; // 输出示例:name=John&age=30
```

3. $_SERVER['HTTPS']

如果当前请求是通过 HTTPS 安全协议发起的,则 $_SERVER['HTTPS'] 会被设置为“on”,否则为“off”。这有助于确定协议。```php
if ($_SERVER['HTTPS'] === 'on') {
$protocol = 'https';
} else {
$protocol = 'http';
}
```

4. $_SERVER['HTTP_HOST']

$_SERVER['HTTP_HOST'] 变量包含主机名和端口号(如果指定)。```php
$host = $_SERVER['HTTP_HOST'];
echo $host; // 输出示例:
```

5. $_SERVER['SERVER_NAME']

$_SERVER['SERVER_NAME'] 是 HTTP 头中指定的主机名,不包括端口号。```php
$server_name = $_SERVER['SERVER_NAME'];
echo $server_name; // 输出示例:
```

6. $_SERVER['SERVER_PORT']

$_SERVER['SERVER_PORT'] 变量包含服务器正在监听的端口号。```php
$port = $_SERVER['SERVER_PORT'];
echo $port; // 输出示例:80
```

7. $_SERVER['REDIRECT_URL']

如果请求已通过重定向处理,则 $_SERVER['REDIRECT_URL'] 会包含请求的原始 URL。```php
$redirect_url = $_SERVER['REDIRECT_URL'];
echo $redirect_url; // 输出示例:/path/to/
```

8. getcwd()

getcwd() 函数返回当前工作目录的绝对路径,但它不包含 URL。```php
$cwd = getcwd();
echo $cwd; // 输出示例:/var/www/html
```

9. realpath()

realpath() 函数可以与 getcwd() 结合使用,以获取当前工作目录的标准化绝对路径。```php
$real_path = realpath(getcwd());
echo $real_path; // 输出示例:/home/user/projects/my-project
```

10. dirname(__FILE__)

dirname(__FILE__) 是一个魔术常量,它返回当前 PHP 脚本所在目录的路径。```php
$dir_path = dirname(__FILE__);
echo $dir_path; // 输出示例:/path/to/my-script
```

PHP 提供了多种方法来获取当前 URL,每种方法都有其特定的用途。通过了解这些方法,您可以根据需要以灵活的方式检索 URL 的不同部分。无论您是创建重定向、生成链接还是记录请求,这些方法都能在您的 PHP 开发中提供帮助。

2024-10-11


上一篇:PHP 中合并数组的多种方法

下一篇:PHP 文件:深入了解服务器端脚本语言