📜  获取 url php (1)

📅  最后修改于: 2023-12-03 15:41:27.070000             🧑  作者: Mango

获取 URL PHP

在 PHP 中,获取 URL 比较常见和重要。通过获取 URL,我们可以解析出其中的参数和路径,从而根据不同的参数和路径调用不同的函数或页面。本文将介绍一些获取 URL 的方法和技巧。

1. 获取当前页面 URL

获取当前页面 URL 最简单的方法就是使用 $_SERVER 超全局变量。其中,$_SERVER['PHP_SELF'] 返回当前执行脚本的文件名,而 $_SERVER['REQUEST_URI'] 则返回完整的 URL(包括参数和路径)。

$current_url = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
echo $current_url;

上述代码将输出当前页面的完整 URL。

2. 解析 URL 参数

有时候我们需要从 URL 中解析出参数,例如用户名、密码等。方法也很简单,首先读取 $_SERVER['QUERY_STRING'] 变量,然后解析其中的参数。

if (isset($_SERVER['QUERY_STRING'])) {
    parse_str($_SERVER['QUERY_STRING'], $params);
    print_r($params);
}

上述代码将输出 URL 中的所有参数及其值。

3. 获取 URL 路径

有时候我们需要从 URL 中获取路径,例如获取当前页面所在的目录。方法同样很简单,可以使用 $_SERVER['PHP_SELF']dirname() 函数。

$current_path = dirname($_SERVER['PHP_SELF']);
echo $current_path;

上述代码将输出当前页面的路径。

4. 使用正则表达式解析 URL

为了更精确地解析 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 解析器。