moviet/panic-validator

一个简单的php验证库,用于php

v1.0.0 2018-12-14 11:19 UTC

This package is auto-updated.

Last update: 2024-09-26 08:33:26 UTC


README

Build Status License Usage codecov Codacy Badge

panic-validator 采用简单、可爱且易于使用的 常见 php验证方式

没有硬编码,使用简单,无权重且非常实用

准备

快速开始

安装

composer require "moviet/panic-validator"

特性

  • 简单验证
  • 自定义警告
  • 自定义验证
  • 简单过滤
  • 修改模式
  • 验证密码
  • 清理HTML
  • 额外奖励

常见用法

简单验证

  • 您可以使用快速直接解析的示例进行验证

    require __DIR__ . '/vendor/autoload.php';
    
    use Moviet\Validator\Panic;
    use Moviet\Validator\Ival;
    
    $panic = new Panic;
    
    $nom = 'Smile'; 
    
    $getnom = $panic->case($nom)
                    ->rule(':alpha')
                    ->get(); 
    
    // var_dump : Smile

    上述代码将返回值,如果不匹配将 返回false

  • 或者,您可能喜欢这样的安静方式

    $data = $panic->match(':doc','mydocument.xls');
    
    // Output : mydocument.xls

    上述代码将返回值,如果不匹配将 返回false

自定义警告

  • 使用自己的消息进行验证

    $request = $_POST['String']; 
    
    $post = $panic->case($request)
                  ->rule(':alNumSpace')
                  ->throw(['Do not burn your finger, invalid !!']);
  • 使用限制和自定义语言进行验证

    $somePost = $panic->case($_POST['String'])
                     ->lang('En') // Optional
                     ->min(3)
                     ->max(100)
                     ->rule(':alphaSpace')
                     ->throw(['Please follow wakanda alphabets']);
  • 使用空情况进行验证

    $anyPost = $panic->case(/*..Empty..*/)
                     ->rule(':alpha')
                     ->throw(['~ Gunakan angka atau spasi']);
    
    // Output : 'Please Fill Out The Form'

    注意 :

    您不能验证空值,默认情况下,该字段不允许

自定义验证

  • 例如,您可以验证像以下简单的HTML表单

    $validUser = $panic->case($_POST['username'])
                       ->rule(':email')
                       ->throw(['Your username may error !!']);
    
    $validPass = $panic->case($_POST['password'])
                       ->auth(8)
                       ->throw(['Password minimum 8 characters']);
                       
    $tokenLog  = $panic->case($_POST['csrf'])
                       ->rule(':alphaNum')
                       ->get();
    
    $data = [$validUser, $validPass, $tokenLog];
    
    if ($panic->confirm($data) !== false) {
    
       // $_POST['username']
       // $_POST['password']
       // ...
    }
  • 在您自己的模板中渲染 HTML表单 示例

    <form method="POST" action="login.php" name="login">
    <table>
    <tbody>
    
    <tr><td>
    <?php if (!$validUser) ?>
    <div class="title_form">Username *
    <label for='username' class='error'><?= $validUser; ?></label></div>
    <input type="text" placeholder="Enter username" name="username" class="form_login" value="" required>
    </td></tr>
    
    <tr><td>
    <?php if (!$validPass) ?>
    <div class="title_form">Password *
    <label for='password' class='error'><?= $validPass; ?></label></div>
    <input type="text" placeholder="Enter password" name="password" class="form_login" value="" required>
    </td></tr>
    
    </tbody>
    </table>
    </form>
  • 如果上述内容看起来不太漂亮,您可以使用 信任 新的推荐

    $product = $panic->case($_GET['product'])
                     ->rule(':alNumSpace')
                     ->throw(['Do not only look, Please bo bo boy !!']);
    
    $tokenId = $panic->case($_GET['token_id'])
                     ->rule(':int')
                     ->throw(['Your token of course, invalid !!']);
    
    $validate = [$product, $tokenId]; 
    
    $entry = $panic->trust($_GET, $validate);
    
    // to retrieve data, please use array
    
    if ($entry !== false)
    $entry[0] // Equivalent $product
    $entry[1] // Equivalent $tokenId
    Next Next...

简单过滤

  • 我们使用类似以下的本地 filter 函数

    $url = 'https://github.com/moviet/panic-validator';
    
    $data = $panic->filter(':url', $url); 
    
    // Output : https://github.com/moviet/panic-validator

修改模式

  • 您可以使用 修改 来修改,例如修改 您自己的规则

    $myrule = $panic->case('My name is yoyo')
                    ->min(2)
                    ->max(20)
                    ->modify('/^[a-zA-Z 0-9]*$/')
                    ->throw(['What the hell something wrong ??']);
    
    // Return Boolen
  • 您可能希望为非消息传递者 草稿匹配

    $string = 'Thanks you';
    
    $data = $panic->draft('/^[a-zA-Z@0-9_1-`-02-^"?>/+\//./]*$/', $string); 
    
    // Output : Thanks you
    
    $string = 'Thanks Match';
    
    $data = $panic->match(':message', $string); 
    
    // Output : Thanks Match

验证密码

  • 我们为本地 密码散列 验证提供了简单的方法

    $data = $panic->verify($_POST['password'], 'DataPassword')
                  ->warn('Do not type password, please use Abcde !!'); 
    
    if ($panic->catch($data)) {
    
       // $_POST['password']
    }
    
    // Print $data => Do not type password, please use Abcde !!

清理HTML

  • 您可以使用我们的“小马”来清理HTML,使其安全作为一包

    $stringHtml = '<script> If this is XSS </script>';
    
    $filterHtml = $panic->htmlSafe($stringHtml); 
    
    $html = $panic->htmlRaw($filterHtml); 
    
    // Output : <script> If this is XSS </script>

额外奖励

  • 无论使用何种方式,自定义 干净的base64 编码可能都很有趣

    $string = 'And thanos will go on';
    
    $encode = $panic->base64($string); 
    
    // Output : aOAIOAIHJSDH837287ksasjka983jsdhdsfsJHJAdsfd34dfSfb
    
    $decode = $panic->pure64($encode); 
    
    // Output : And thanos will go on

模式

过滤器

许可

Moviet/panic-validator 在MIT公共许可证下发布。