php querystring 解析

笔记2024-04-262 人已阅来源:网络

PHP querystring本质上是GET请求中的语法操作符,可以使用它来在URL中传递参数以便于服务器能够获取到这些参数。PHP语言提供了一些内置函数来对querystring进行解析,常用的有$_GET和parse_str()。下文将介绍这两种函数的用法,并且通过具体的代码例子进行说明。

首先我们先来看一下$_GET。$_GET是一个全局变量,可以用来获取通过querystring传递的参数。比如我们有一个URL:http://example.com/index.php?id=123&name=John,通过$_GET['id']可以获取到"123"这个参数的值,通过$_GET['name']可以获取到"John"这个参数的值。具体代码如下:

$id = $_GET['id'];
$name = $_GET['name'];

除了可以通过单独的参数名来获取其值之外,我们还可以通过$_GET来获取所有的参数。具体代码如下:

foreach ($_GET as $key => $value){
echo $key . ' = ' . $value . '<br/>';
}

另外,我们也可以使用parse_str()函数来解析querystring中的参数。这个函数可以将querystring字符串解析成一组变量,可以用于在一个字符串里面获取多个值。parse_str()函数的两个参数分别为要解析的字符串和存储变量的数组名。具体代码如下:

$query = "id=123&name=John";
parse_str($query, $params);

$id = $params['id']; $name = $params['name'];

echo $id . '<br/>'; echo $name . '<br/>';

想要获取包含多个参数的querystring中的参数的值,可以使用parse_str()函数的方式来解决。具体代码如下:

$query = "id=123&name=John&age=18";
parse_str($query, $params);

$id = isset($params['id']) ? $params['id'] : ''; $name = isset($params['name']) ? $params['name'] : ''; $age = isset($params['age']) ? $params['age'] : '';

echo $id . '<br/>'; echo $name . '<br/>'; echo $age . '<br/>';

最后,需要注意的是,在PHP中还有一种方法来解析querystring,即使用parse_url()函数。parse_url()函数的用法相对于之前介绍的两种方法略微复杂,因此这里不再赘述。希望大家在编写PHP程序的时候,能够更加熟练地运用querystring的解析,方便开发工作的进行。