<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # Valitron 教程 > 原文: [https://zetcode.com/php/valitron/](https://zetcode.com/php/valitron/) PHP Valitron 教程展示了如何使用 Valitron 驗證包驗證 PHP 值。 ## Valitron Valitron 是一個簡單,最小且優雅的獨立驗證庫,沒有依賴項。 ## 安裝 ```php $ composer require vlucas/valitron $ composer require tightenco/collect ``` 我們安裝了 Valitron 套件和 Laravel 的集合套件。 ## 簡單的例子 在第一個示例中,我們展示了如何進行非常簡單的驗證。 `simple.php` ```php <?php require('vendor/autoload.php'); use Valitron\Validator; $validator = new Validator(['name' => 'John Doe']); $validator->rule('required', 'name'); if($validator->validate()) { echo "Validation passed"; } else { $coll = collect($validator->errors()); $messages = $coll->flatten(); foreach ($messages as $message) { echo $message . "\n"; } } ``` 該示例驗證一個必需值。 ```php use Valitron\Validator; ``` 我們包括驗證器。 ```php $validator = new Validator(['name' => 'John Doe']); ``` 我們創建`Validator`的實例,并將其傳遞給要驗證的值。 ```php $validator->rule('required', 'name'); ``` 我們用`rule()`方法指定`required`規則。 ```php if($validator->validate()) { ``` 驗證通過`validate()`執行。 ```php $coll = collect($validator->errors()); $messages = $coll->flatten(); foreach ($messages as $message) { echo $message . "\n"; } ``` 如果驗證失敗,我們將得到錯誤并顯示。 ```php $ php simple.php Validation passed ``` 這是輸出。 ## 驗證規則 Valitron 包含一組預定義規則,例如`required`,`email`,`min`,`max`或`url`。 規則可以與`|`字符結合使用。 `multiple_rules.php` ```php <?php require('vendor/autoload.php'); use Valitron\Validator; $rules = [ 'required' => ['name', 'email'], 'alphaNum' => 'name', 'integer' => 'age', 'min' => [['age', 1]], 'email' => 'email' ]; $validator = new Validator(['name' => 'John Doe', 'age' => 34]); $validator->rules($rules); if ($validator->validate()) { echo "Validation passed"; } else { $errors = $validator->errors(); foreach ($errors as $arr) { foreach ($arr as $error) { echo $error . "\n"; } }; } ``` 該示例使用了多個驗證規則。 ```php $rules = [ 'required' => ['name', 'email'], 'alphaNum' => 'name', 'integer' => 'age', 'min' => [['age', 1]], 'email' => 'email' ]; ``` 我們有四個驗證規則。 需要`name`和`email`。 `name`必須為字母數字值,`age`必須為整數,最小值為 1。最后,`email`必須為有效的電子郵件地址。 ```php $ php multiple_rules.php Email is required Email is not a valid email address Name must contain only letters a-z and/or numbers 0-9 ``` 該示例以三個驗證失敗結束。 ## Valitron 鏈接規則 可以通過鏈接`rule()`方法來添加規則。 `chaining.php` ```php <?php require('vendor/autoload.php'); use Valitron\Validator; $validator = new Validator(['name' => 'John Doe', 'email' => 'johndoe#gmail.com']); $validator->rule('required', 'name')->rule('email', 'email'); if($validator->validate()) { echo "Validation passed"; } else { $coll = collect($validator->errors()); $messages = $coll->flatten(); foreach ($messages as $message) { echo $message . "\n"; } } ``` 該示例鏈接了兩個規則。 ```php $validator->rule('required', 'name')->rule('email', 'email'); ``` 我們通過鏈接`rule()`方法添加了兩個驗證規則。 ## 驗證日期 日期有四個驗證規則:`date`,`dateFormat`,`dateBefore`和`dateAfter`。 `date_before.php` ```php <?php require('vendor/autoload.php'); use Valitron\Validator; $validator = new Validator(['created_at' => '2019-03-01']); $validator->rule('dateBefore', 'created_at', '2018-10-13'); if ($validator->validate()) { echo "Validation passed"; } else { $coll = collect($validator->errors()); $messages = $coll->flatten(); foreach ($messages as $message) { echo $message . "\n"; } } ``` 該示例使用`dateBefore`規則驗證兩個日期。 ```php $validator = new Validator(['created_at' => '2019-03-01']); $validator->rule('dateBefore', 'created_at', '2018-10-13'); ``` 使用`dateBefore`規則,我們驗證給定日期早于其他日期。 ```php $ php date_before.php Created At must be date before '2018-10-13' ``` This is the output. ## 驗證 IP 地址 IP 地址使用`ip`規則進行驗證。 `ipaddress.php` ```php <?php require 'vendor/autoload.php'; use Valitron\Validator; $vals = ['ip1' => '127.0.0.1', 'ip2' => 'FE80:0000:0000:0000:0202:B3FF:FE1E:8329', 'ip3' => 'FE80::0202:B3FF:FE1E:8329', 'ip4' => '0.0.1']; $coll = collect($vals); $coll->each(function ($value, $key) { $validator = new Validator([$key => $value]); $validator->rule('ip', $key); if ($validator->validate()) { echo "Validation passed for $key with $value" . "\n"; } else { $errs = collect($validator->errors()); $messages = $errs->flatten(); foreach ($messages as $message) { echo $message . "\n"; } } }); ``` 該示例驗證 IP v4 IP v6 地址。 ```php $ php ipaddress.php Validation passed for ip1 with 127.0.0.1 Validation passed for ip2 with FE80:0000:0000:0000:0202:B3FF:FE1E:8329 Validation passed for ip3 with FE80::0202:B3FF:FE1E:8329 Ip4 is not a valid IP address ``` This is the output. ## 自定義消息 我們可以提供自定義驗證消息。 消息通過`message()`傳遞。 `custom_message.php` ```php <?php require('vendor/autoload.php'); use Valitron\Validator; $validator = new Validator(['name' => '']); $validator->rule('required', 'name')->message('{field} is compulsory')->label("name"); $validator->rule('lengthMin', 'name', 2)->message('{field} must have at least 2 characters') ->label("name"); if($validator->validate()) { echo "Validation passed"; } else { $coll = collect($validator->errors()); $messages = $coll->flatten(); foreach ($messages as $message) { echo $message . "\n"; } } ``` 該示例添加了自定義消息。 ```php $validator->rule('required', 'name')->message('{field} is compulsory')->label("name"); ``` 使用鏈接的方法調用,我們添加了自定義驗證消息。 ```php $ php custom_message.php name is compulsory name must have at least 2 characters ``` This is the output. ## 值的驗證子集 值的子集使用`subset`規則進行驗證。 `subsets.php` ```php <?php require('vendor/autoload.php'); use Valitron\Validator; $vals = ['colors' => ['green', 'blue', 'black']]; $validator = new Validator($vals); $validator->rule('subset', 'colors', ['red', 'green', 'blue', 'orange', 'yellow']); if ($validator->validate()) { echo "Validation passed"; } else { $coll = collect($validator->errors()); $messages = $coll->flatten(); foreach ($messages as $message) { echo $message . "\n"; } } ``` 該示例檢查`$vals`變量是否包含來自定義的顏色值子集的顏色。 ## 驗證 GET 數據 在以下示例中,我們驗證 GET 數據。 `get_data.php` ```php <?php require('vendor/autoload.php'); use Valitron\Validator; $validator = new Validator($_GET); $validator->rule('required', ['name', 'email']); $validator->rule('email', 'email'); if ($validator->validate()) { echo "Validation passed"; } else { $coll = collect($validator->errors()); $messages = $coll->flatten(); foreach ($messages as $message) { echo $message . "\n"; } } ``` 該示例驗證來自 GET 請求的名稱和電子郵件參數。 ```php $validator = new Validator($_GET); ``` 全局`$_GET`變量傳遞給`Validator`。 ```php $ php -S localhost:8000 PHP 7.2.11 Development Server started at Sat Feb 23 17:24:05 2019 Listening on http://localhost:8000 Document root is C:\Users\Jano\Documents\php-progs\valitron Press Ctrl-C to quit. ``` 我們啟動內置的 Web 服務器。 ```php $ curl "localhost:8000/get_data.php?name=John%20Doe&email=john.doe#gmail.com" Email is not a valid email address ``` 我們使用`curl`工具創建帶有兩個參數的 GET 請求。 您可能也對以下相關教程感興趣: [PHP Respect 驗證教程](/php/respectvalidation/), [PHP Rakit 驗證教程](/php/rakitvalidation/), [PHP PDO 教程](/php/pdo/), [PHP 文件系統函數](/articles/phpfilesystemfunctions/) , [PHP 教程](/lang/php/)。 在本教程中,我們使用了 Valitron 來驗證 PHP 值。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看