Created
August 28, 2016 23:51
-
-
Save jotapepinheiro/d0aad2ab5891a1096a6723fa960280d7 to your computer and use it in GitHub Desktop.
Validações PHP
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
include("Validator.php"); | |
$email = "[email protected]"; | |
if(Validator::EmailReal($email)){ | |
echo "The email is valid"; | |
}else{ | |
echo "That’s an invalid email"; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Validator class | |
*/ | |
class Validator{ | |
/** | |
* String text finder | |
* | |
* @access private | |
* @param string $string | |
* @param array $hits | |
* @return void | |
*/ | |
private static function textHit($string, $exclude=""){ | |
if(empty($exclude)) return false; | |
if(is_array($exclude)){ | |
foreach($exclude as $text){ | |
if(strstr($string, $text)) return true; | |
} | |
}else{ | |
if(strstr($string, $exclude)) return true; | |
} | |
return false; | |
} | |
/** | |
* Number compare | |
* | |
* @access private | |
* @param int $integer | |
* @param int $max | |
* @param int $min | |
* @return bool | |
*/ | |
private static function numberBetween($integer, $max=null, $min=0){ | |
if(is_numeric($min) && $integer <= $min) return false; | |
if(is_numeric($max) && $integer >= $max) return false; | |
return true; | |
} | |
/** | |
* Email addres check | |
* | |
* @access public | |
* @param string $string | |
* @param array $exclude | |
* @return bool | |
*/ | |
public static function Email($string, $exclude=""){ | |
if(self::textHit($string, $exclude)) return false; | |
return (bool)preg_match("/^([a-z0-9])(([-a-z0-9._])*([a-z0-9]))*\@([a-z0-9])(([a-z0-9-])*([a-z0-9]))+(\.([a-z0-9])([-a-z0-9_-])?([a-z0-9])+)+$/i", $string); | |
} | |
/** | |
* Email addres Real check | |
* | |
* @access public | |
* @param string $string | |
* @param array $exclude | |
* @return bool | |
*/ | |
public static function EmailReal($email){ | |
if(filter_var($email, FILTER_VALIDATE_EMAIL)) | |
{ | |
$separa = list($usuario, $provedor) = explode('@', $email); | |
if(getmxrr($separa[1], $mx_records, $mx_weight)) | |
return $separa[0].'@'.$separa[1]; | |
else | |
return false; | |
} | |
return false; | |
} | |
/** | |
* URL check | |
* | |
* @access public | |
* @param strin $string | |
* @return bool | |
*/ | |
public static function Url($string, $exclude=""){ | |
if(self::textHit($string, $exclude)) return false; | |
return (bool)preg_match("/^(http|https|ftp):\/\/([A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):?(\d+)?\/?/i", $string); | |
} | |
/** | |
* IP | |
* | |
* @access public | |
* @param string $string | |
* @return void | |
*/ | |
public static function Ip($string){ | |
return (bool)preg_match("/^(1?\d{1,2}|2([0-4]\d|5[0-5]))(\.(1?\d{1,2}|2([0-4]\d|5[0-5]))){3}$/", $string); | |
} | |
/** | |
* Check if it is an number | |
* | |
* @access public | |
* @param int $integer | |
* @param int $max | |
* @param int $min | |
* @return bool | |
*/ | |
public static function Number($integer, $max=null, $min=0){ | |
if(preg_match("/^\-?\+?[0-9e1-9]+$/",$integer)){ | |
if(!self::numberBetween($integer, $max, $min)) return false; | |
return true; | |
} | |
return false; | |
} | |
/** | |
* Check if it is an unsigned number | |
* | |
* @access public | |
* @param int $integer | |
* @return bool | |
*/ | |
public static function UnsignedNumber($integer){ | |
return (bool)preg_match("/^\+?[0-9]+$/",$integer); | |
} | |
/** | |
* Float | |
* | |
* @access public | |
* @param string $string | |
* @return bool | |
*/ | |
public static function Float($string){ | |
return (bool)($string==strval(floatval($string)))? true : false; | |
} | |
/** | |
* Alpha check | |
* | |
* @access public | |
* @param string $string | |
* @return void | |
*/ | |
public static function Alpha($string){ | |
return (bool)preg_match("/^[a-zA-Z]+$/", $string); | |
} | |
/** | |
* Alpha numeric check | |
* | |
* @access public | |
* @param string $string | |
* @return void | |
*/ | |
public static function AlphaNumeric($string){ | |
return (bool)preg_match("/^[0-9a-zA-Z]+$/", $string); | |
} | |
/** | |
* Specific chars check | |
* | |
* @access public | |
* @param string $string | |
* @param array $allowed | |
* @return void | |
*/ | |
public static function Chars($string, $allowed=array("a-z")){ | |
return (bool)preg_match("/^[" . implode("", $allowed) . "]+$/", $string); | |
} | |
/** | |
* Check length of an string | |
* | |
* @access public | |
* @param string $stirng | |
* @param int $max | |
* @param int $min | |
* @return bool | |
*/ | |
public static function Length($string, $max=null, $min=0){ | |
$length = strlen($string); | |
if(!self::numberBetween($length, $max, $min)) return false; | |
return true; | |
} | |
/** | |
* Hex color check | |
* | |
* @access public | |
* @param string $string | |
* @return void | |
*/ | |
public static function HexColor($string){ | |
return (bool)preg_match("/^(#)?([0-9a-f]{1,2}){3}$/i", $string); | |
} | |
/** | |
* Data validation | |
* | |
* Does'nt matter how you provide the date | |
* dd/mm/yyyy | |
* dd-mm-yyyy | |
* yyyy/mm/dd | |
* yyyy-mm-dd | |
* | |
* @access public | |
* @param string $string | |
* @return bool | |
*/ | |
public static function Date($string){ | |
$date = date('Y', strtotime($string)); | |
return ($date == "1970" || $date == '') ? false : true; | |
} | |
/** | |
* Older than check | |
* | |
* @access public | |
* @param string $string | |
* @param int $age | |
* @return bool | |
*/ | |
public static function OlderThan($string, $age){ | |
$date = date('Y', strtotime($string)); | |
if($date == "1970" || $date == '') return false; | |
return (date('Y') - $date) > $age ? true : false; | |
} | |
/** | |
* XML valid | |
* | |
* @access public | |
* @param string $string | |
* @return bool | |
*/ | |
public static function Xml($string){ | |
$Xml = @simplexml_load_string($string); | |
return ($Xml === false) ? false : true; | |
} | |
/** | |
* Is filesize between | |
* | |
* @access public | |
* @param string $file | |
* @param int $max | |
* @param int $min | |
* @return bool | |
*/ | |
public static function FilesizeBetween($file, $max=null, $min=0){ | |
$filesize = filesize($file); | |
return self::numberBetween($filesize, $max, $min); | |
} | |
/** | |
* Is image width between | |
* | |
* @access public | |
* @param string $image | |
* @param int $max_width | |
* @param int $min_width | |
* @param int $max_height | |
* @param int $min_height | |
* @return void | |
*/ | |
public static function ImageSizeBetween($image, $max_width="", $min_width=0, $max_height="", $min_height=0){ | |
$size = getimagesize($image); | |
if(!self::numberBetween($size[0], $max_width, $min_width)) return false; | |
if(!self::numberBetween($size[1], $max_height, $min_height)) return false; | |
return true; | |
} | |
/** | |
* Phone numbers | |
* | |
* @access public | |
* @param string $phone | |
* @return bool | |
*/ | |
public static function Phone($phone){ | |
$formats = array( '###-###-####', | |
'####-###-###', | |
'(###) ###-###', | |
'####-####-####', | |
'##-###-####-####', | |
'####-####', | |
'###-###-###', | |
'#####-###-###', | |
'##########', | |
'####-##-##-##'); | |
$format = trim(preg_replace("/[0-9]/", "#", $phone)); | |
return (bool)in_array($format, $formats); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment