Php PREG_匹配和服务器端脚本

Php PREG_匹配和服务器端脚本,php,regex,Php,Regex,我想问一个关于preg_match的问题,以及关于“日期”的信息实际上是如何传递的 已确定符合正则表达式,或不符合正则表达式。即使在做了几个月的PHP和regex之后,我也不清楚这个问题。我的问题是,下面的两个正则表达式是等价的吗?请注意,第一个是PREG_匹配,而第二个是NOT PREG_匹配。当用户错误地输入格式错误的日期(如2014年10月10日)时,数据是否实际发送到服务器,然后被服务器拒绝为不符合正则表达式,或者数据是否首先停止发送到服务器?我想理解的是,$date=$\u POST[

我想问一个关于preg_match的问题,以及关于“日期”的信息实际上是如何传递的 已确定符合正则表达式,或不符合正则表达式。即使在做了几个月的PHP和regex之后,我也不清楚这个问题。我的问题是,下面的两个正则表达式是等价的吗?请注意,第一个是PREG_匹配,而第二个是NOT PREG_匹配。当用户错误地输入格式错误的日期(如2014年10月10日)时,数据是否实际发送到服务器,然后被服务器拒绝为不符合正则表达式,或者数据是否首先停止发送到服务器?我想理解的是,$date=$\u POST['date']是指浏览器向服务器发送用户数据的行为,还是指浏览器从服务器获取用户数据的行为?在下面的第一个备选方案中,服务器是否“看到”格式错误的日期,或者浏览器是否首先停止将格式错误的日期发送到服务器?下面这两件事完全相等吗

备选方案1:

   if (preg_match("/^(19|20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$/, "$date"){
    $date = $_POST['date'];
    }
备选方案2:

    if (!preg_match("/^(19|20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$/, "$date"){
    $date = "";
    $dateErr = "Invalid email format";
    }

PHP是服务器端脚本语言,所以数据被发送到服务器,然后进行操作(检查)。对于基于浏览器的验证,您需要使用JavaScript。

PHP是一种服务器端语言。因此,如果PHP正在处理数据,根据定义,这些数据已经到达服务器。上面的代码不阻止任何东西被发送到服务器;它只是在到达后拒绝接受它


我不清楚你在问关于正则表达式的什么。它们在字面上是相同的;只有
if
语句不同。提供的
if
语句不会阻止服务器接收数据;他们只是决定到达后如何处理。

谢谢,非常感谢。很高兴能提供帮助!请记住选择一个答案!