验证 PHP 变量
Validate a PHP variable
我正在尝试验证一个字符串数组以查看它们是否是有效的变量名,如果不是则抛出错误。但是使用我的测试数组(如下所示),所有键都作为有效名称返回,而且我知道它们不应该,因为第一个以无效的 3
开头。我做错了什么吗?
foreach($key as $k => $v){
if(!preg_match("'[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'", $k)){
throw new Exception("Invalid Meta Data Key Name");
}
$this->meta->$k = $v;
}
在此处找到正则表达式:http://php.net/manual/en/language.variables.basics.php
这是我用来测试上述内容的数组:
$key = array(
"3total" => $this->foundRows,
"rows" => $this->resultSetSize,
"page" => $this->page,
"pages" => $this->getPages(),
"offset" => $this->getOffset(),
"columns" => $this->columns,
)
该模式在任何地方都匹配。您需要使用行锚 ^
的开头。正确验证可能需要结束锚 $
:
'^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*$'
我正在尝试验证一个字符串数组以查看它们是否是有效的变量名,如果不是则抛出错误。但是使用我的测试数组(如下所示),所有键都作为有效名称返回,而且我知道它们不应该,因为第一个以无效的 3
开头。我做错了什么吗?
foreach($key as $k => $v){
if(!preg_match("'[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'", $k)){
throw new Exception("Invalid Meta Data Key Name");
}
$this->meta->$k = $v;
}
在此处找到正则表达式:http://php.net/manual/en/language.variables.basics.php
这是我用来测试上述内容的数组:
$key = array(
"3total" => $this->foundRows,
"rows" => $this->resultSetSize,
"page" => $this->page,
"pages" => $this->getPages(),
"offset" => $this->getOffset(),
"columns" => $this->columns,
)
该模式在任何地方都匹配。您需要使用行锚 ^
的开头。正确验证可能需要结束锚 $
:
'^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*$'