diff options
Diffstat (limited to 'h-source/Library/Array')
-rw-r--r-- | h-source/Library/Array/Validate/Base.php | 241 | ||||
-rw-r--r-- | h-source/Library/Array/Validate/Soft.php | 85 | ||||
-rw-r--r-- | h-source/Library/Array/Validate/Strong.php | 180 | ||||
-rw-r--r-- | h-source/Library/Array/Validate/index.html | 1 | ||||
-rw-r--r-- | h-source/Library/Array/index.html | 1 |
5 files changed, 508 insertions, 0 deletions
diff --git a/h-source/Library/Array/Validate/Base.php b/h-source/Library/Array/Validate/Base.php new file mode 100644 index 0000000..3366097 --- /dev/null +++ b/h-source/Library/Array/Validate/Base.php @@ -0,0 +1,241 @@ +<?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. +// See COPYRIGHT.txt and LICENSE.txt. + +if (!defined('EG')) die('Direct access not allowed!'); + +//class to validate associative arrays +class Array_Validate_Base +{ + + public $errorString = null; //string containing the list fields not found + public $errorsNumb = null; //numbers of errors + + protected $_lang; //language of notices + protected $_resultString; //reference to the class arraycheckStrings containing all the result strings + + + public function __construct($lang = 'Eng') + { + $this->_lang = $lang; + $stringClass = 'Lang_'.$this->_lang.'_ValCondStrings'; + if (!class_exists($stringClass)) + { + $stringClass = 'Lang_Eng_ValCondStrings'; + } + $this->_resultString = new $stringClass(); + } + + + //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) + { + $errorString = null; + $keyArray = explode(',',$keyString); + $numb = 0; + + //set the first value to null + $firstValue = null; + + foreach ($keyArray as $key) + { + if (array_key_exists($key,$associativeArray)) + { + $firstValue = $associativeArray[$key]; + break; + } + } + + if (isset($firstValue)) + { + for ($i = 0; $i < count($keyArray); $i++) + { + if (array_key_exists($keyArray[$i],$associativeArray)) + { + if (strcmp($associativeArray[$keyArray[$i]],$firstValue) !== 0) + { + $numb++; + $errorString = $this->_resultString->getNotEqualResultString($keyString); + } + } + } + } + + $this->errorString = $errorString; + return $numb === 0 ? true : false; + } + + + //verify that the values of the associative array ($associativeArray) indicated by the key string ($keyString) are alphabetic values + //$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 checkAlpha($associativeArray,$keyString,$strength = 'strong') + { + return $this->checkGeneric($associativeArray,$keyString,$strength,'ctype_alpha','getNotAlphabeticResultString'); + } + + + //verify that the values of the associative array ($associativeArray) indicated by the key string ($keyString) are alphanumeric values + //$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 checkAlphaNum($associativeArray,$keyString,$strength = 'strong') + { + return $this->checkGeneric($associativeArray,$keyString,$strength,'ctype_alnum','getNotAlphanumericResultString'); + } + + + //verify that the values of the associative array ($associativeArray) indicated by the key string ($keyString) are decimal digits + //$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 checkDigit($associativeArray,$keyString,$strength = 'strong') + { + return $this->checkGeneric($associativeArray,$keyString,$strength,'ctype_digit','getNotDecimalDigitResultString'); + } + + + //verify that the values of the associative array ($associativeArray) indicated by the key string ($keyString) have mail format + //$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 checkMail($associativeArray,$keyString,$strength = 'strong') + { + return $this->checkGeneric($associativeArray,$keyString,$strength,'checkMail','getNotMailFormatResultString'); + } + + + //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') + { + return $this->checkGeneric($associativeArray,$keyString,$strength,'is_numeric','getNotNumericResultString'); + } + + + //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 + //$func: the function to apply + //$strFunc: the method of the object $this->_resultString to apply + private function checkGeneric($associativeArray,$keyString,$strength,$func,$strFunc) + { + + $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 $strength === 'strong') + { + if (!call_user_func($func,$associativeArray[$keyArray[$i]])) + { + $numb++; + $errorString .= call_user_func(array($this->_resultString,$strFunc),$keyArray[$i]); + } + } + } + } + + $this->errorString = $errorString; + return $numb === 0 ? true : 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) + { + $errorString = null; + $keyArray = explode(',',$keyString); + $numb = 0; + for ($i = 0; $i < count($keyArray); $i++) + { + if (array_key_exists($keyArray[$i],$associativeArray)) + { + if (eg_strlen($associativeArray[$keyArray[$i]]) > $maxLength) + { + $numb++; + $errorString .= $this->_resultString->getLengthExceedsResultString($keyArray[$i],$maxLength); + } + } + } + $this->errorString = $errorString; + return $numb === 0 ? true : false; + + } + + //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 = '') + { + $errorString = null; + $keyArray = explode(',',$keyString); + $numb = 0; + //get the array from the comma-separated list of strings + $stringsArray = explode(',',$strings); + for ($i = 0; $i < count($keyArray); $i++) + { + if (array_key_exists($keyArray[$i],$associativeArray)) + { + foreach ($stringsArray as $string) + { + if (strcmp($associativeArray[$keyArray[$i]],$string) === 0) + { + $numb++; + $errorString .= $this->_resultString->getIsForbiddenStringResultString($keyArray[$i],$strings); + } + } + } + } + $this->errorString = $errorString; + return $numb === 0 ? true : false; + } + + //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) + //$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 checkIsStrings($associativeArray,$keyString,$strings = '',$strength = 'strong') + { + $errorString = null; + $keyArray = explode(',',$keyString); + $numb = 0; + //get the array from the comma-separated list of strings + $stringsArray = explode(',',$strings); + for ($i = 0; $i < count($keyArray); $i++) + { + if (array_key_exists($keyArray[$i],$associativeArray)) + { + if (strcmp($associativeArray[$keyArray[$i]],'') !== 0 or $strength === 'strong') + { + if (!in_array($associativeArray[$keyArray[$i]],$stringsArray)) + { + $numb++; + $errorString .= $this->_resultString->getIsNotStringResultString($keyArray[$i],$strings); + } + } + } + } + $this->errorString = $errorString; + return $numb === 0 ? true : false; + } + + //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++) + { + if (array_key_exists($keyArray[$i],$associativeArray)) + { + if (strcmp($associativeArray[$keyArray[$i]],'') !== 0 or $strength === 'strong') + { + if (!preg_match($regExp,$associativeArray[$keyArray[$i]])) + { + $numb++; + $errorString .= $this->_resultString->getDoesntMatchResultString($keyArray[$i],$regExp); + } + } + } + } + $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 new file mode 100644 index 0000000..95e208d --- /dev/null +++ b/h-source/Library/Array/Validate/Soft.php @@ -0,0 +1,85 @@ +<?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. +// See COPYRIGHT.txt and LICENSE.txt. + +if (!defined('EG')) die('Direct access not allowed!'); + +//class to validate associative arrays +class Array_Validate_Soft extends Array_Validate_Base +{ + + public function __construct($lang = 'Eng') + { + 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) + { + 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) + { + 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) + { + 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) + { + 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) + { + 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 = '') + { + 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 = '/./') + { + return parent::checkMatch($associativeArray,$keyString,$regExp,'soft'); + } + +}
\ No newline at end of file diff --git a/h-source/Library/Array/Validate/Strong.php b/h-source/Library/Array/Validate/Strong.php new file mode 100644 index 0000000..6494483 --- /dev/null +++ b/h-source/Library/Array/Validate/Strong.php @@ -0,0 +1,180 @@ +<?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. +// See COPYRIGHT.txt and LICENSE.txt. + +if (!defined('EG')) die('Direct access not allowed!'); + +//class to manage arrays +class Array_Validate_Strong extends Array_Validate_Base +{ + + public function __construct($lang = 'Eng') + { + parent::__construct($lang); + } + + + 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) + { + if ($this->checkNotEmpty($associativeArray,$keyString)) + { + + return parent::checkEqual($associativeArray,$keyString); + + } else { + return false; + } + } + + //verify that the values of the associative array ($associativeArray) indicated by the key string ($keyString) are alphabetic values + public function checkAlpha($associativeArray,$keyString) + { + if ($this->checkNotEmpty($associativeArray,$keyString)) + { + + return parent::checkAlpha($associativeArray,$keyString,'strong'); + + } else { + return false; + } + } + + + //verify that the values of the associative array ($associativeArray) indicated by the key string ($keyString) are alphanumeric values + public function checkAlphaNum($associativeArray,$keyString) + { + if ($this->checkNotEmpty($associativeArray,$keyString)) + { + + return parent::checkAlphaNum($associativeArray,$keyString,'strong'); + + } else { + return false; + } + } + + + //verify that the values of the associative array ($associativeArray) indicated by the key string ($keyString) are decimal digits + public function checkDigit($associativeArray,$keyString) + { + if ($this->checkNotEmpty($associativeArray,$keyString)) + { + + return parent::checkDigit($associativeArray,$keyString,'strong'); + + } else { + return false; + } + } + + + //verify that the values of the associative array ($associativeArray) indicated by the key string ($keyString) have mail format + public function checkMail($associativeArray,$keyString) + { + if ($this->checkNotEmpty($associativeArray,$keyString)) + { + + return parent::checkMail($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) + { + if ($this->checkNotEmpty($associativeArray,$keyString)) + { + + return parent::checkNumeric($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) + { + if ($this->checkNotEmpty($associativeArray,$keyString)) + { + + return parent::checkLength($associativeArray,$keyString,$maxLength); + + } else { + return false; + } + } + + + //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 = '') + { + if ($this->checkNotEmpty($associativeArray,$keyString)) + { + + return parent::checkIsNotStrings($associativeArray,$keyString,$strings); + + } else { + return false; + } + } + + + //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 = '') + { + if ($this->checkNotEmpty($associativeArray,$keyString)) + { + + return parent::checkIsStrings($associativeArray,$keyString,$strings,'strong'); + + } else { + return false; + } + } + + //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 = '/./') + { + if ($this->checkNotEmpty($associativeArray,$keyString)) + { + + return parent::checkMatch($associativeArray,$keyString,$regExp,'strong'); + + } else { + return false; + } + } +}
\ No newline at end of file diff --git a/h-source/Library/Array/Validate/index.html b/h-source/Library/Array/Validate/index.html new file mode 100644 index 0000000..8d1c8b6 --- /dev/null +++ b/h-source/Library/Array/Validate/index.html @@ -0,0 +1 @@ + diff --git a/h-source/Library/Array/index.html b/h-source/Library/Array/index.html new file mode 100644 index 0000000..8d1c8b6 --- /dev/null +++ b/h-source/Library/Array/index.html @@ -0,0 +1 @@ + |