| 
<?php
/**
 * Validation class for validation of misc strings
 *
 * @author    Sven Wagener <wagener_at_indot_de>
 * @include      Funktion:_include_
 */
 class validate{
 var $country_code;
 var $string;
 
 /**
 * Regular expressions for postcode of the following countries
 * at = austria
 * au = australia
 * ca = canada
 * de = german
 * ee = estonia
 * nl = netherlands
 * it = italy
 * pt = portugal
 * se = sweden
 * uk = united kingdom
 * us = united states
 **/
 var $pattern_postcode=array(
 'at'=>'^[0-9]{4,4}$',
 'au'=>'^[2-9][0-9]{2,3}$',
 'ca'=>'^[a-zA-Z].[0-9].[a-zA-Z].\s[0-9].[a-zA-Z].[0-9].',
 'de'=>'^[0-9]{5,5}$',
 'ee'=>'^[0-9]{5,5}$',
 'nl'=>'^[0-9]{4,4}\s[a-zA-Z]{2,2}$',
 'it'=>'^[0-9]{5,5}$',
 'pt'=>'^[0-9]{4,4}-[0-9]{3,3}$',
 'se'=>'^[0-9]{3,3}\s[0-9]{2,2}$',
 'uk'=>'^([A-Z]{1,2}[0-9]{1}[0-9A-Z]{0,1}) ?([0-9]{1}[A-Z]{1,2})$',
 'us'=>'^[0-9]{5,5}[\-]{0,1}[0-9]{4,4}'
 
 );
 
 var $pattern_email='^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$ ';
 var $pattern_ip='([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})';
 var $pattern_url='^(http|ftp)://(www\.)?.+\.(com|net|org)$';
 
 /**
 * The constructor of the validation class
 * @param string $string the string which have to be validated
 * @desc The constructor of the validation class
 */
 function validate($string){
 $this->string=$string;
 }
 
 /**
 * Validates the string if it consists of alphabetical chars
 * @param int $num_chars the number of chars in the string
 * @param string $behave defines how to check the string: min, max or exactly number of chars
 * @desc Validates the string if it consists of alphabetical chars
 */
 function alpha($num_chars,$behave){
 if($behave=="min"){
 $pattern="^[a-zA-Z]{".$num_chars.",}$";
 }else if ($behave=="max"){
 $pattern="^[a-zA-Z]{0,".$num_chars."}$";
 }else if ($behave=="exactly"){
 $pattern="^[a-zA-Z]{".$num_chars.",".$num_chars."}$";
 }
 return ereg($pattern,$this->string);
 }
 
 /**
 * Validates the string if it consists of lowercase alphabetical chars
 * @param int $num_chars the number of chars in the string
 * @param string $behave defines how to check the string: min, max or exactly number of chars
 * @desc Validates the string if it consists of lowercase alphabetical chars
 */
 function alpha_lowercase($num_chars,$behave){
 if($behave=="min"){
 $pattern="^[a-z]{".$num_chars.",}$";
 }else if ($behave=="max"){
 $pattern="^[a-z]{0,".$num_chars."}$";
 }else if ($behave=="exactly"){
 $pattern="^[a-z]{".$num_chars.",".$num_chars."}$";
 }
 return ereg($pattern,$this->string);
 
 }
 
 /**
 * Validates the string if it consists of uppercase alphabetical chars
 * @param int $num_chars the number of chars in the string
 * @param string $behave defines how to check the string: min, max or exactly number of chars
 * @desc Validates the string if it consists of uppercalse alphabetical chars
 */
 function alpha_uppercase($num_chars,$behave){
 if($behave=="min"){
 $pattern="^[A-Z]{".$num_chars.",}$";
 }else if ($behave=="max"){
 $pattern="^[A-Z]{0,".$num_chars."}$";
 }else if ($behave=="exactly"){
 $pattern="^[A-Z]{".$num_chars.",".$num_chars."}$";
 }
 return ereg($pattern,$this->string);
 
 }
 
 /**
 * Validates the string if it consists of numeric chars
 * @param int $num_chars the number of chars in the string
 * @param string $behave defines how to check the string: min, max or exactly number of chars
 * @desc Validates the string if it consists of numeric chars
 */
 function numeric($num_chars,$behave){
 if($behave=="min"){
 $pattern="^[0-9]{".$num_chars.",}$";
 }else if ($behave=="max"){
 $pattern="^[0-9]{0,".$num_chars."}$";
 }else if ($behave=="exactly"){
 $pattern="^[0-9]{".$num_chars.",".$num_chars."}$";
 }
 return ereg($pattern,$this->string);
 }
 
 /**
 * Validates the string if it consists of alphanumerical chars
 * @param int $num_chars the number of chars in the string
 * @param string $behave defines how to check the string: min, max or exactly number of chars
 * @desc Validates the string if it consists of alphanumerical chars
 */
 function alpha_numeric($num_chars,$behave){
 if($behave=="min"){
 $pattern="^[0-9a-zA-Z]{".$num_chars.",}$";
 }else if ($behave=="max"){
 $pattern="^[0-9a-zA-Z]{0,".$num_chars."}$";
 }else if ($behave=="exactly"){
 $pattern="^[0-9a-zA-Z]{".$num_chars.",".$num_chars."}$";
 }
 return ereg($pattern,$this->string);
 }
 
 /**
 * Validates the string if its a valid postcode
 * @param string $country_code the country code for the country of the postcode (de,en)
 * @desc Validates the string if its a valid postcode
 */
 function postcode($country_code){
 if(array_key_exists($country_code,$this->pattern_postcode)){
 return ereg($this->pattern_postcode[$country_code],$this->string);
 }else{
 return false;
 }
 }
 
 /**
 * Validates the string if its a valid email address
 * @desc Validates the string if its a valid email adress
 */
 function email(){
 return ereg($this->pattern_email,$this->string);
 }
 
 /**
 * Validates the string if its a valid ip address
 * @desc Validates the string if its a valid ip address
 */
 function ip_address(){
 return ereg($this->pattern_ip,$ip);
 }
 
 /**
 * Validates the string if its a valid URL
 * @desc Validates the string if its a valid URL
 */
 function url(){
 return ereg($this->pattern_url,$ip);
 }
 }
 ?>
 |