PHP 如何接收 GET 参数

在日常做网页开发时,我们经常会遇到“怎么把用户在浏览器里输入的信息传给网站后台”的问题。比如你在电商网站搜索“纯棉T恤”,搜索关键词就是通过一种叫GET参数的方式传递给后端的,而用PHP处理这类参数,是很多新手入门PHP开发时最先接触的实用技能。

什么是GET参数?先举个生活化的例子

平时你用手机导航找餐厅,打开地图后在搜索栏输入“附近的奶茶店”,地址栏会变成类似https://map.example.com/search?keyword=附近的奶茶店&type=饮品的样子。这里问号?后面的keyword=附近的奶茶店和type=饮品,就是GET参数——它是附在网页地址后面的“键值对”,用&分隔多个参数,每个键和值用=连接。

PHP 如何接收 GET 参数

这种传递参数的方式,因为直接暴露在地址栏里,适合传非敏感信息,比如搜索关键词、商品分类这些,这也是它和POST参数最直观的区别。

PHP接收GET参数的核心工具:超全局变量

PHP里有一组叫“超全局变量”的特殊变量,是系统提前定义好的,不用自己创建,专门用来获取外部传来的数据。接收GET参数最常用的就是$_GET,它是一个“数组”,每个GET参数的键就是数组的下标,值就是数组元素。

举个最简单的例子:如果地址栏是https://你的网站地址.php?user=张三&age=25,那在PHP文件里,用$_GET['user']就能拿到“张三”,$_GET['age']就能拿到25。你可以把它想象成一个快递盒,GET参数是提前放好的包裹,$_GET就是装这些包裹的篮子,只要知道包裹的名字(键),就能直接拿出来。

实际使用要注意的2个细节

刚入门的人很容易犯两个小错误,提前留意就能少踩坑。

第一个是参数不存在的情况。如果地址里只带了user=张三,却用$_GET['age'],PHP会直接报错。所以实际开发时要先确认参数有没有传来,用isset()函数判断就好,比如if (isset($_GET['age'])) { $age = $_GET['age']; },这样没传参数时也不会出错。

第二个是特殊字符的处理。如果参数是带空格、中文或者特殊符号的内容,比如搜索“夏季新款T恤”,PHP默认会自动解码这些内容,不用自己转,但如果要把数据传给数据库,记得用mysqli_real_escape_string()这类函数过滤,避免数据库出错或者被注入攻击。

一个完整的小例子,帮你快速理解

假设你做了一个简单的页面,用来接收用户输入的昵称和城市:

首先,用户访问你的页面地址是你的页面.php?nick=小明&city=杭州;

然后在PHP文件里写这段代码:

`php

// 先判断两个参数都存在

if (isset($_GET['nick'], $_GET['city'])) {

$nick = $_GET['nick'];

$city = $_GET['city'];

// 输出内容

echo "你好,{$nick}!欢迎来自{$city}的朋友~";

} else {

echo "请在地址栏补充昵称和城市参数哦";

}

`

用户打开这个页面时,就能看到“你好,小明!欢迎来自杭州的朋友~”的提示,要是地址里漏了参数,就会提示补充,这就是PHP接收GET参数的实际效果。

掌握了这个基础的用法,就能处理很多日常的开发需求,比如做文章列表的分类筛选、用户简单信息的传递,都是从接收GET参数开始的。

上一篇 Java 集合怎么去重