aboutsummaryrefslogtreecommitdiff
path: root/h-source/Library/Array
diff options
context:
space:
mode:
Diffstat (limited to 'h-source/Library/Array')
-rw-r--r--h-source/Library/Array/Validate/Base.php106
-rw-r--r--h-source/Library/Array/Validate/Soft.php91
-rw-r--r--h-source/Library/Array/Validate/Strong.php91
-rw-r--r--h-source/Library/Array/Validate/Values.php36
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";
+ }
+
+}