aboutsummaryrefslogtreecommitdiff
path: root/h-source/Library/Array/Validate/Base.php
diff options
context:
space:
mode:
Diffstat (limited to 'h-source/Library/Array/Validate/Base.php')
-rw-r--r--h-source/Library/Array/Validate/Base.php106
1 files changed, 89 insertions, 17 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