Php 更短的验证方式?

Php 更短的验证方式?,php,Php,我总是做POST的检查验证,有时它会变得太凌乱和冗长。保持它短而整洁的最好方法是什么 例如: if (isset($_POST['albumName']) && trim($_POST['albumName']) != "" && isset($_POST['slugName']) && $_POST['slugName'] != "" && is_numeric($_POST['PhotoCatID'])) { //All g

我总是做POST的检查验证,有时它会变得太凌乱和冗长。保持它短而整洁的最好方法是什么

例如:

if (isset($_POST['albumName']) && trim($_POST['albumName']) != "" && isset($_POST['slugName']) && $_POST['slugName'] != "" && is_numeric($_POST['PhotoCatID'])) {
  //All good
}
可能有你想要的,特别是:

$albumName = filter_input(INPUT_POST, 'albumName', FILTER_SANITIZE_STRIPPED);
$slugNamed = filter_input(INPUT_POST, 'slugName', FILTER_SANITIZE_STRIPPED);
$PhotoCatId = filter_input(INPUT_POST, 'PhotoCatId', FILTER_SANITIZE_NUMBER_INT);

(我个人最后编写了名为
filter\u get
filter\u post
filter\u request
的包装,只是为了让行短一点……。

如果您希望减少重复代码并改进逻辑,请考虑创建一个验证类,将允许您集中所有验证逻辑

关于验证类的大量资源:

此外,您还有PHP内置的过滤器扩展,它允许您对数据进行清理和验证


  • 首先。垂直书写,而不是水平书写。
    如果你有几句话,就一句接一句地写,不要写在一行

    接下来,可以在循环中应用一些验证:

    foreach ($_POST as $key => $value) $_POST[$key] = trim($value);
    
    接下来,可以缩短一些语句

    $err=array();
    if (empty($_POST['albumName'])) $err[]= "Album name is empty";
    if (empty($_POST['slugName'])) $err[]= "Slug name is empty";
    if (!is_numeric($_POST['PhotoCatID'])) $err[]= "Wrong parameters";
    
    if(!$err) {
      //All good
    }
    

    其余的取决于你的需要

    对于ID,您可以省去很多麻烦,只需将它们键入int即可

    $id = (int)$_POST['id'];
    
    如果该值无效,$id将设置为0