diff options
Diffstat (limited to 'h-source/Library/Array/Validate')
-rw-r--r-- | h-source/Library/Array/Validate/Base.php | 106 | ||||
-rw-r--r-- | h-source/Library/Array/Validate/Soft.php | 91 | ||||
-rw-r--r-- | h-source/Library/Array/Validate/Strong.php | 91 | ||||
-rw-r--r-- | h-source/Library/Array/Validate/Values.php | 36 |
4 files changed, 207 insertions, 117 deletions
diff --git a/h-source/Library/Array/Validate/Base.php b/h-source/Library/Array/Validate/Base.php index fb4a66c..f1a242e 100644 --- a/h-source/Library/Array/Validate/Base.php +++ b/h-source/Library/Array/Validate/Base.php @@ -2,7 +2,7 @@ // EasyGiant is a PHP framework for creating and managing dynamic content // -// Copyright (C) 2009 - 2011 Antonio Gallo +// Copyright (C) 2009 - 2014 Antonio Gallo (info@laboratoriolibero.com) // See COPYRIGHT.txt and LICENSE.txt. // // This file is part of EasyGiant @@ -26,6 +26,7 @@ if (!defined('EG')) die('Direct access not allowed!'); class Array_Validate_Base { + public $strength; public $errorString = null; //string containing the list fields not found public $errorsNumb = null; //numbers of errors @@ -44,7 +45,40 @@ class Array_Validate_Base $this->_resultString = new $stringClass(); } - + public function checkNotEmpty($associativeArray,$keyString) + { + $errorString = null; + $keyArray = explode(',',$keyString); + $numb = 0; + for ($i = 0; $i < count($keyArray); $i++) + { + if (array_key_exists($keyArray[$i],$associativeArray)) + { + if (is_array($associativeArray[$keyArray[$i]])) + { + $errorString .= $this->_resultString->getNotDefinedResultString($keyArray[$i]); + $numb++; + } + else + { + if (strcmp(trim($associativeArray[$keyArray[$i]]),'') === 0) + { + $errorString .= $this->_resultString->getNotDefinedResultString($keyArray[$i]); + $numb++; + } + } + } + else + { + $errorString .= $this->_resultString->getNotDefinedResultString($keyArray[$i]); + $numb++; + } + } + $this->errorString = $errorString; + $this->errorNumb = $numb; + return $numb === 0 ? true : false; + } + //verify that the values of the associative array ($associativeArray) indicated by the key string ($keyString) are not '' and are equal (===) to each other public function checkEqual($associativeArray,$keyString) { @@ -116,6 +150,13 @@ class Array_Validate_Base } + //verify that the values of the associative array ($associativeArray) indicated by the key string ($keyString) are integer strings + //$strength: hard or soft. If $strength is set equal to soft than non check is made upon array values equalt to '' or null + public function checkInteger($associativeArray,$keyString,$strength = 'strong') + { + return $this->checkGeneric($associativeArray,$keyString,$strength,'checkInteger','getNotIntegerFormatResultString'); + } + //verify that the values of the associative array ($associativeArray) indicated by the key string ($keyString) is a number (integer or number). It makes use of the is_numeric PHP built-in function //$strength: hard or soft. If $strength is set equal to soft than non check is made upon array values equalt to '' or null public function checkNumeric($associativeArray,$keyString,$strength = 'strong') @@ -123,6 +164,12 @@ class Array_Validate_Base return $this->checkGeneric($associativeArray,$keyString,$strength,'is_numeric','getNotNumericResultString'); } + //verify that the values of the associative array ($associativeArray) indicated by the key string ($keyString) are an ISO date. + //$strength: hard or soft. If $strength is set equal to soft than non check is made upon array values equalt to '' or null + public function checkIsoDate($associativeArray,$keyString,$strength = 'strong') + { + return $this->checkGeneric($associativeArray,$keyString,$strength,'checkIsoDate','getNotDateResultString'); + } //apply a generic check function //$strength: hard or soft. If $strength is set equal to soft than non check is made upon array values equalt to '' or null @@ -139,7 +186,7 @@ class Array_Validate_Base { if (array_key_exists($keyArray[$i],$associativeArray)) { - if (strcmp($associativeArray[$keyArray[$i]],'') !== 0 or $strength === 'strong') + if (strcmp($associativeArray[$keyArray[$i]],'') !== 0 or $this->strength === 'strong') { if (!call_user_func($func,$associativeArray[$keyArray[$i]])) { @@ -217,7 +264,7 @@ class Array_Validate_Base { if (array_key_exists($keyArray[$i],$associativeArray)) { - if (strcmp($associativeArray[$keyArray[$i]],'') !== 0 or $strength === 'strong') + if (strcmp($associativeArray[$keyArray[$i]],'') !== 0 or $this->strength === 'strong') { if (!in_array($associativeArray[$keyArray[$i]],$stringsArray)) { @@ -234,25 +281,50 @@ class Array_Validate_Base //verify that the values of the associative array ($associativeArray) indicated by the key string ($keyString) match the regular expression $regExp public function checkMatch($associativeArray,$keyString,$regExp = '/./',$strength = 'strong') { - $errorString = null; - $keyArray = explode(',',$keyString); - $numb = 0; - for ($i = 0; $i < count($keyArray); $i++) + $errorString = null; + $keyArray = explode(',',$keyString); + $numb = 0; + for ($i = 0; $i < count($keyArray); $i++) + { + if (array_key_exists($keyArray[$i],$associativeArray)) { - if (array_key_exists($keyArray[$i],$associativeArray)) + if (strcmp($associativeArray[$keyArray[$i]],'') !== 0 or $this->strength === 'strong') { - if (strcmp($associativeArray[$keyArray[$i]],'') !== 0 or $strength === 'strong') + if (!preg_match($regExp,$associativeArray[$keyArray[$i]])) { - if (!preg_match($regExp,$associativeArray[$keyArray[$i]])) - { - $numb++; - $errorString .= $this->_resultString->getDoesntMatchResultString($keyArray[$i],$regExp); - } + $numb++; + $errorString .= $this->_resultString->getDoesntMatchResultString($keyArray[$i],$regExp); } } } - $this->errorString = $errorString; - return $numb === 0 ? true : false; + } + $this->errorString = $errorString; + return $numb === 0 ? true : false; + } + + //verify that the values of the associative array ($associativeArray) indicated by the key string ($keyString) are decimal with the format indicated in $format + //$format: M,D M is the maximum number of digits, D is the number of digits to the right of the decimal point + public function checkDecimal($associativeArray,$keyString,$format = '10,2') + { + $errorString = null; + $keyArray = explode(',',$keyString); + $numb = 0; + for ($i = 0; $i < count($keyArray); $i++) + { + if (array_key_exists($keyArray[$i],$associativeArray)) + { + if (strcmp($associativeArray[$keyArray[$i]],'') !== 0 or $this->strength === 'strong') + { + if (!checkDecimal($associativeArray[$keyArray[$i]],$format)) + { + $numb++; + $errorString .= $this->_resultString->getNotDecimalResultString($keyArray[$i],$format); + } + } + } + } + $this->errorString = $errorString; + return $numb === 0 ? true : false; } }
\ No newline at end of file diff --git a/h-source/Library/Array/Validate/Soft.php b/h-source/Library/Array/Validate/Soft.php index d0c7646..d790652 100644 --- a/h-source/Library/Array/Validate/Soft.php +++ b/h-source/Library/Array/Validate/Soft.php @@ -1,7 +1,24 @@ <?php -// All EasyGiant code is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. +// EasyGiant is a PHP framework for creating and managing dynamic content +// +// Copyright (C) 2009 - 2014 Antonio Gallo (info@laboratoriolibero.com) // See COPYRIGHT.txt and LICENSE.txt. +// +// This file is part of EasyGiant +// +// EasyGiant is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// EasyGiant is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with EasyGiant. If not, see <http://www.gnu.org/licenses/>. if (!defined('EG')) die('Direct access not allowed!'); @@ -9,77 +26,11 @@ if (!defined('EG')) die('Direct access not allowed!'); class Array_Validate_Soft extends Array_Validate_Base { - public function __construct($lang = 'Eng') + public function __construct($lang = 'En') { parent::__construct($lang); - } - - - //verify that the values of the associative array ($associativeArray) indicated by the key string ($keyString) are not '' and are equal (===) to each other - public function checkEqual($associativeArray,$keyString) - { - return parent::checkEqual($associativeArray,$keyString); - } - - //verify that the values of the associative array ($associativeArray) indicated by the key string ($keyString) are alphabetic values - public function checkAlpha($associativeArray,$keyString,$strength = 'soft') - { - return parent::checkAlpha($associativeArray,$keyString,'soft'); - } - - - //verify that the values of the associative array ($associativeArray) indicated by the key string ($keyString) are alphanumeric values - public function checkAlphaNum($associativeArray,$keyString,$strength = 'soft') - { - return parent::checkAlphaNum($associativeArray,$keyString,'soft'); - } - - - //verify that the values of the associative array ($associativeArray) indicated by the key string ($keyString) are decimal digits - public function checkDigit($associativeArray,$keyString,$strength = 'soft') - { - return parent::checkDigit($associativeArray,$keyString,'soft'); - } - - - //verify that the values of the associative array ($associativeArray) indicated by the key string ($keyString) have mail format - public function checkMail($associativeArray,$keyString,$strength = 'soft') - { - return parent::checkMail($associativeArray,$keyString,'soft'); - } - - - //verify that the values of the associative array ($associativeArray) indicated by the key string ($keyString) is a number (integer or number). It makes use of the is_numeric PHP built-in function - public function checkNumeric($associativeArray,$keyString,$strength = 'soft') - { - return parent::checkNumeric($associativeArray,$keyString,'soft'); - } - - - //verify that the values of the associative array ($associativeArray) indicated by the key string ($keyString) have a number of chars smaller than $maxLenght - public function checkLength($associativeArray,$keyString,$maxLength = 10) - { - return parent::checkLength($associativeArray,$keyString,$maxLength); - } - - - //verify that the values of the associative array ($associativeArray) indicated by the key string ($keyString) are different from the values indicated in the argument $strings (a comma-separated list of words) - public function checkIsNotStrings($associativeArray,$keyString,$strings = '') - { - return parent::checkIsNotStrings($associativeArray,$keyString,$strings); - } - - - //verify that the values of the associative array ($associativeArray) indicated by the key string ($keyString) are one of the values indicated in the argument $strings (a comma-separated list of words) - public function checkIsStrings($associativeArray,$keyString,$strings = '',$strength = 'soft') - { - return parent::checkIsStrings($associativeArray,$keyString,$strings,'soft'); - } - - //verify that the values of the associative array ($associativeArray) indicated by the key string ($keyString) match the regular expression $regExp - public function checkMatch($associativeArray,$keyString,$regExp = '/./',$strength = 'soft') - { - return parent::checkMatch($associativeArray,$keyString,$regExp,'soft'); + + $this->strength = "soft"; } } diff --git a/h-source/Library/Array/Validate/Strong.php b/h-source/Library/Array/Validate/Strong.php index d105319..d907d1d 100644 --- a/h-source/Library/Array/Validate/Strong.php +++ b/h-source/Library/Array/Validate/Strong.php @@ -1,46 +1,38 @@ <?php -// All EasyGiant code is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. +// EasyGiant is a PHP framework for creating and managing dynamic content +// +// Copyright (C) 2009 - 2014 Antonio Gallo (info@laboratoriolibero.com) // See COPYRIGHT.txt and LICENSE.txt. +// +// This file is part of EasyGiant +// +// EasyGiant is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// EasyGiant is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with EasyGiant. If not, see <http://www.gnu.org/licenses/>. if (!defined('EG')) die('Direct access not allowed!'); -//class to manage arrays +//class to validate associative arrays class Array_Validate_Strong extends Array_Validate_Base { - public function __construct($lang = 'Eng') + public function __construct($lang = 'En') { parent::__construct($lang); + + $this->strength = "strong"; } - - public function checkNotEmpty($associativeArray,$keyString) - { - $errorString = null; - $keyArray = explode(',',$keyString); - $numb = 0; - for ($i = 0; $i < count($keyArray); $i++) - { - if (array_key_exists($keyArray[$i],$associativeArray)) - { - if (strcmp(trim($associativeArray[$keyArray[$i]]),'') === 0) - { - $errorString .= $this->_resultString->getNotDefinedResultString($keyArray[$i]); - $numb++; - } - } - else - { - $errorString .= $this->_resultString->getNotDefinedResultString($keyArray[$i]); - $numb++; - } - } - $this->errorString = $errorString; - $this->errorNumb = $numb; - return $numb === 0 ? true : false; - } - //verify that the values of the associative array ($associativeArray) indicated by the key string ($keyString) are not '' and are equal (===) to each other public function checkEqual($associativeArray,$keyString) { @@ -110,6 +102,19 @@ class Array_Validate_Strong extends Array_Validate_Base } + //verify that the values of the associative array ($associativeArray) indicated by the key string ($keyString) are an ISO date. + public function checkIsoDate($associativeArray,$keyString,$strength = 'strong') + { + if ($this->checkNotEmpty($associativeArray,$keyString)) + { + + return parent::checkIsoDate($associativeArray,$keyString,'strong'); + + } else { + return false; + } + } + //verify that the values of the associative array ($associativeArray) indicated by the key string ($keyString) is a number (integer or number). It makes use of the is_numeric PHP built-in function public function checkNumeric($associativeArray,$keyString,$strength = 'strong') { @@ -123,6 +128,18 @@ class Array_Validate_Strong extends Array_Validate_Base } } + //verify that the values of the associative array ($associativeArray) indicated by the key string ($keyString) is an integer string. + public function checkInteger($associativeArray,$keyString,$strength = 'strong') + { + if ($this->checkNotEmpty($associativeArray,$keyString)) + { + + return parent::checkInteger($associativeArray,$keyString,'strong'); + + } else { + return false; + } + } //verify that the values of the associative array ($associativeArray) indicated by the key string ($keyString) have a number of chars smaller than $maxLenght public function checkLength($associativeArray,$keyString,$maxLength = 10) @@ -177,4 +194,18 @@ class Array_Validate_Strong extends Array_Validate_Base return false; } } + + //verify that the values of the associative array ($associativeArray) indicated by the key string ($keyString) are decimal with the format indicated in $format + //$format: M,D M is the maximum number of digits, D is the number of digits to the right of the decimal point + public function checkDecimal($associativeArray,$keyString,$format = '10,2') + { + if ($this->checkNotEmpty($associativeArray,$keyString)) + { + + return parent::checkDecimal($associativeArray,$keyString,$format); + + } else { + return false; + } + } } diff --git a/h-source/Library/Array/Validate/Values.php b/h-source/Library/Array/Validate/Values.php new file mode 100644 index 0000000..9355949 --- /dev/null +++ b/h-source/Library/Array/Validate/Values.php @@ -0,0 +1,36 @@ +<?php + +// EasyGiant is a PHP framework for creating and managing dynamic content +// +// Copyright (C) 2009 - 2014 Antonio Gallo (info@laboratoriolibero.com) +// See COPYRIGHT.txt and LICENSE.txt. +// +// This file is part of EasyGiant +// +// EasyGiant is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// EasyGiant is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with EasyGiant. If not, see <http://www.gnu.org/licenses/>. + +if (!defined('EG')) die('Direct access not allowed!'); + +//class to validate associative arrays +class Array_Validate_Values extends Array_Validate_Soft +{ + + public function __construct($lang = 'En') + { + parent::__construct($lang); + + $this->strength = "strong"; + } + +} |