📅  最后修改于: 2023-12-03 15:41:27.070000             🧑  作者: Mango
在 PHP 中,获取 URL 比较常见和重要。通过获取 URL,我们可以解析出其中的参数和路径,从而根据不同的参数和路径调用不同的函数或页面。本文将介绍一些获取 URL 的方法和技巧。
获取当前页面 URL 最简单的方法就是使用 $_SERVER
超全局变量。其中,$_SERVER['PHP_SELF']
返回当前执行脚本的文件名,而 $_SERVER['REQUEST_URI']
则返回完整的 URL(包括参数和路径)。
$current_url = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
echo $current_url;
上述代码将输出当前页面的完整 URL。
有时候我们需要从 URL 中解析出参数,例如用户名、密码等。方法也很简单,首先读取 $_SERVER['QUERY_STRING']
变量,然后解析其中的参数。
if (isset($_SERVER['QUERY_STRING'])) {
parse_str($_SERVER['QUERY_STRING'], $params);
print_r($params);
}
上述代码将输出 URL 中的所有参数及其值。
有时候我们需要从 URL 中获取路径,例如获取当前页面所在的目录。方法同样很简单,可以使用 $_SERVER['PHP_SELF']
和 dirname()
函数。
$current_path = dirname($_SERVER['PHP_SELF']);
echo $current_path;
上述代码将输出当前页面的路径。
为了更精确地解析 URL,我们可以使用正则表达式。下面是一个解析 URL 参数的正则表达式示例代码:
$url = 'http://example.com/login/?username=admin&password=123456';
preg_match_all('/(?:\?|&)(\w+)=([^&]+)/', $url, $matches, PREG_SET_ORDER);
$params = array();
foreach ($matches as $match) {
$params[$match[1]] = $match[2];
}
print_r($params);
上述代码将输出 URL 中的所有参数及其值,结果与第二种方法相同。
获取 URL 在 PHP 编程中非常常见和重要,上述方法可以满足大多数需求。但是需要注意的是,对于一些复杂的 URL,例如重写 URL,需要使用更高级的技术,例如 URL 解析器。