简体   繁体   English

捕获php中无效输入的最快方法

[英]Quickest way to catch an invalid input in php

From an HTML document, I am getting two value 从HTML文档中,我获得了两个价值

$dateStart = $_GET['date_1']; //date starting search
$dateEnd = $_GET['date_2']; //date starting search

Does PHP offer a feature that allows me to check if the input don't match the format dd/mm/yy or must I nest conditions? PHP是否提供允许我检查输入是否与dd/mm/yy格式不匹配的功能,或者我必须嵌套条件?

Validate your date 验证您的日期

if (DateTime::createFromFormat('d/m/y', $date)) {
    echo "Date is valid";
} else {
    echo "Date is not valid";
}

More generally, if you want to validate "stuff" 更一般而言,如果您要验证“东西”

Use PHP "embedded filters" with filter_var() . 将PHP“嵌入式过滤器”与filter_var() Link . 链接 You can use it for a lot of "standard" filters or with your regex. 您可以将其用于许多“标准”过滤器或正则表达式。 In the case of dd/mm/yy dates you can use a custom regex: 如果是dd/mm/yy日期,则可以使用自定义正则表达式:

$regex = '~^\d{2}/\d{2}/\d{2}$~';
print filter_var("01/01/2017",FILTER_VALIDATE_REGEXP,["options" => ["regexp"=> $regex]]);

Beware, this will validate also 22/22/22 which is not correct, so use the first proposed date validation, I used it only as example ;) 当心,这还将验证22/22/22这是不正确的,因此请使用第一个建议的日期验证,我仅以它为例;)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM