php语法特性
preg_match()
preg_match(pattern, subject)是 PHP 中用于执行正则表达式匹配的函数,它的基本语法如下:
pattern:正则表达式,用于定义要匹配的模式。 subject:要检查的字符串(在你的例子中是 $a)。 返回值:如果找到匹配,返回 1。如果未找到匹配,返回 0。如果发生错误,返回 false。
/ ... /:正则表达式的分隔符,定义了要匹配的模式。
i:修饰符,表示正则表达式是大小写不敏感的(即不区分大小写)。
常见需要转义的特殊字符
以下是正则表达式中具有特殊含义的字符,如果你想匹配它们的字面值,必须用 \ 转义。在 PHP 中,这些字符需要写成 \\ 来匹配它们的字面值:
字符 特殊含义 用途
. 匹配任意字符(除了换行符) 匹配任意单个字符
^ 匹配字符串的开头 用于匹配字符串的起始位置
$ 匹配字符串的结尾 用于匹配字符串的末尾
* 匹配前面的字符 0 次或多次 用于量化符号,表示可以重复的字符或模式
+ 匹配前面的字符 1 次或多次 表示至少重复一次的字符或模式
? 匹配前面的字符 0 次或 1 次 表示字符或模式是可选的
[] 字符集,用来表示一组可能的字符 匹配括号内的任意字符
{} 限定符,用来表示前面的字符的重复次数 指定字符或模式出现的次数
() 捕获组,用于将一部分正则表达式括起来作为一个整体 捕获匹配的子表达式
` ` 逻辑 "或",匹配左边或右边的表达式
\ 转义字符,允许将特殊字符作为普通字符处理 用来转义正则表达式中的特殊字符
/ 正则表达式的分隔符(在正则表达式的起始和结束位置) PHP 中正则表达式分隔符,不是特殊字符
正则表达式 /[a-zA-Z]{6}/ [a-zA-Z]:表示匹配任何英文字母字符,既包括小写字母 (a-z),也包括大写字母 (A-Z)。 {6}:表示正好匹配 6 个字符。 因此,正则表达式 /[a-zA-Z]{6}/ 的含义是匹配由 6 个连续的字母(大小写皆可)组成的字符串。
$a = @$_POST['a'];
$key = @preg_match('/[a-zA-Z]{6}/', $a);
@:在 PHP 中,@ 操作符用于隐藏错误消息。
$a = @$_POST['a'];:将表单提交的 POST 请求中的 a 值赋给 $a,并使用 @ 来隐藏可能的未定义索引错误。
$key = @preg_match('/[a-zA-Z]{6}/', $a);:使用正则表达式 /[a-zA-Z]{6}/ 来检查 $a 是否包含一个由 6 个英文字母组成的子字符串。如果匹配成功,$key 会被赋值为 1;如果不匹配,则 $key 为 0。
$_REQUEST
在 PHP 中,$_REQUEST 是一个全局数组,它包含通过 GET、POST 或 COOKIE 方式提交的请求参数。换句话说,$_REQUEST 可以同时获取来自 $_GET、$_POST 和 $_COOKIE 的数据。它提供了一种方便的方式来访问用户提交的所有类型的数据,而无需区分提交方式。
详细说明: $_REQUEST:是一个超全局数组,包含 HTTP 请求的参数。PHP 将 GET、POST 和 COOKIE 数据都合并到 $_REQUEST 中。
来源: $_GET:包含通过 URL 查询字符串(GET 方法)传递的参数,例如 example.com/index.php?b=value。
$_POST:包含通过 HTTP POST 方法传递的数据,通常用于表单提交。
$_COOKIE:包含通过 HTTP 请求中的 Cookie 传递的数据。
$_REQUEST 会将这些来源的数据合并成一个数组。