PHP获取与替换URL参数的函数示例

0 下载量 154 浏览量 更新于2024-09-01 收藏 80KB PDF 举报
本文主要介绍了在PHP中如何获取当前页面的URL以及如何替换URL中的参数值。提供了两个自编函数,一个是`GetCurUrl()`用于获取当前页面的完整URL,另一个是`url_set_value()`用于设置URL中指定参数的新值。 在PHP中,获取当前页面URL通常需要用到`$_SERVER`全局数组中的`REQUEST_URI`和`PHP_SELF`两个变量。`REQUEST_URI`包含了请求的URI,而`PHP_SELF`则包含当前执行脚本的名称。`GetCurUrl()`函数通过判断这两个变量是否存在和其值来组合出完整的URL。 ```php function GetCurUrl() { if (!empty($_SERVER["REQUEST_URI"])) { $scriptName = $_SERVER["REQUEST_URI"]; $nowurl = $scriptName; } else { $scriptName = $_SERVER["PHP_SELF"]; if (empty($_SERVER["QUERY_STRING"])) { $nowurl = $scriptName; } else { $nowurl = $scriptName . "?" . $_SERVER["QUERY_STRING"]; } } return $nowurl; } ``` 替换URL中参数值的情况较为复杂,因为URL可能有多种格式。`url_set_value()`函数采用了一种通用的方法,首先通过`explode()`函数按问号拆分URL,然后使用`parse_str()`解析查询字符串为关联数组,接着修改数组中指定键的值,最后通过`http_build_query()`重新构建查询字符串并拼接到URL路径后面。 ```php function url_set_value($url, $key, $value) { $a = explode('?', $url); $url_f = $a[0]; $query = $a[1]; parse_str($query, $arr); $arr[$key] = $value; return $url_f . '?' . http_build_query($arr); } ``` 此外,文中还提到了一个简单的替换示例,但没有展示完整的函数实现。这个例子中,使用了类似的方法,但可能没有`url_set_value()`函数那样通用。在实际开发中,`url_set_value()`函数可以方便地应用于分页类或者需要动态修改URL参数的场景。 这两个函数对于在PHP中处理URL参数非常实用,尤其是当需要动态更新URL或获取当前页面URL时。在进行网页开发,尤其是涉及到URL重定向、参数传递或者页面跳转时,这些函数能够大大简化工作流程。