$p1 = "[0-9]{4}";
$p2 = "[0-9]{1,6}";
if($name == null || $id == null)
{
// Assume that I have a error message set up
die();
}
else if(!preg_match($p1,$id))
{
die();
}
else
{
//...Some stuff
}
当我尝试提交表单时,我收到了这封信:
解析错误:语法错误,第29行的未知修饰符'{'
(第19行是$p1 = "^[0-9]{4}$";
。)我是忽视某些事情还是我只是愚蠢?
答案 0 :(得分:7)
你忘了你的regex delimiters(正如minitech建议的那样,你应该使用单引号来预测未来的逃避问题)。
因此,
$p1="[0-9]{4}$";
$p2="[0-9]{1,6}";
应该是
$p1='/[0-9]{4}$/';
$p2='/[0-9]{1,6}/';
这是传统的分隔符。请注意,您可以从许多不同的分隔符字符中进行选择(请参阅上面的链接),例如
$p1='@[0-9]{4}$@';
$p2='@[0-9]{1,6}@';
当您的模式包含/
时,这可能很方便,因此您无需逃避它们。