*/ /** Permit to check the validity of fields */ class verify { ///////////////// // NETWORK // ///////////////// /** Check if $val is a valid IPv4 * Return true or false * @param string $val The IP to test */ public function is_ip ($val) { return \verify::staticIs_ip ($val); } /** Check if $val is a valid IPv4 in static mode * Return true or false * @param string $val The IP to test */ public function staticIs_ip ($val) { if (filter_var ($val, FILTER_VALIDATE_IP)) return true; return false; } /** Check if $val is a valid IPv4 * Return true or false * @param string $val The IPv4 to test */ public function is_ipv4 ($val) { return \verify::staticIs_ipv4 ($val); } /** Check if $val is a valid IPv4 in static mode * Return true or false * @param string $val The IPv4 to test */ public function staticIs_ipv4 ($val) { if (filter_var ($val, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) return true; return false; } /** Check if $val is a valid IPv6 * Return true or false * @param string $val The IPv6 to test */ public function is_ipv6 ($val) { return \verify::staticIs_ipv6 ($val); } /** Check if $val is a valid IPv6 in static mode * Return true or false * @param string $val The IPv6 to test */ public static function staticIs_ipv6 ($val) { if (filter_var ($val, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) return true; return false; } /** Check if $val is a valid hostname (without domain) * Return true or false * @param string $val The hostname to check */ public function is_hostname ($val) { return \verify::staticIs_hostname ($val); } /** Check if $val is a valid hostname (without domain) * Return true or false * @param string $val The hostname to check */ public static function staticIs_hostname ($val) { if (strlen ($val) < 2 || strlen ($val) > 128) return false; if (strspn ($val, "abcdefghijklmnopqrstuvwxyz". "ABCDEFGHIJKLMNOPQRSTUVWXYZ". "0123456789-.") !== strlen ($val)) return false; // No end dot ? if (substr ($val, -1) === ".") return false; return true; } /** Check if $val is a valid domain (without hostname) * Return true or false * @param string $val The domain to check */ public function is_domain ($val) { return \verify::staticIs_domain ($val); } /** Check if $val is a valid domain (without hostname) in static mode * Return true or false * @param string $val The domain to check */ public static function staticIs_domain ($val) { if (strlen ($val) < 2 || strlen ($val) > 128) return false; if (strspn ($val, "abcdefghijklmnopqrstuvwxyz". "ABCDEFGHIJKLMNOPQRSTUVWXYZ". "0123456789-.") !== strlen ($val)) return false; // No end dot ? if (substr ($val, -1) === ".") return false; return true; } /** Check if $val is a valid FQDN * Return true or false * @param string $val The FQDN to check */ public function is_FQDN ($val) { return \verify::staticIs_FQDN ($val); } /** Check if $val is a valid FQDN in static mode * Return true or false * @param string $val The FQDN to check */ public static function staticIs_FQDN ($val) { if (strlen ($val) < 2 || strlen ($val) > 255) return false; if (\verify::is_ip ($val)) return false; if (strspn ($val, "abcdefghijklmnopqrstuvwxyz". "ABCDEFGHIJKLMNOPQRSTUVWXYZ". "0123456789-.") !== strlen ($val)) return false; // No end dot ? if (substr ($val, -1) === ".") return false; return true; } /////////////// // DATES // /////////////// /** Check if $val is a valid date A valid date is 2014-03-20 12:27:34 Return true or false @param string $val The date to check */ public function is_datetimeSQL ($val) { return \verify::staticIs_datetimeSQL ($val); } /** Check if $val is a valid date in static mode A valid date is 2014-03-20 12:27:34 Return true or false @param string $val The date to check */ public static function staticIs_datetimeSQL ($val) { if (strlen ($val) !== 19) return false; $arr = date_parse ($val); if ($arr["warning_count"] !==0) return false; if ($arr["error_count"] !==0) return false; if (isset ($arr["tz_abbr"])) return false; if (strspn ($val, "0123456789 :-") !== strlen ($val)) return false; if (\DateTime::createFromFormat("Y-m-d H:i:s", $val) === false) return false; return true; } ///////////////// // NUMBERS // ///////////////// /** Return true if the provided value is an integer in decimal (not octal) * @param string $val The Integer val to check */ public function is_integer ($val) { return \verify::staticIs_integer ($val); } /** Return true if the provided value is an integer in decimal (not octal) * In static mode * @param string $val The Integer val to check */ public static function staticIs_integer ($val) { if (! is_string ($val) || trim ($val) === "") return false; if (strspn ($val, "0123456789") !== strlen ($val)) return false; return true; } //////////////// // EMAILS // //////////////// /** Return true if the provided value is a valid email address * @param string $val The value to check * @return boolean */ public function is_email ($val) { return \verify::staticIs_email ($val); } /** Return true if the provided value is a valid email address in static mode * @param string $val The value to check * @return boolean */ public static function staticIs_email ($val) { return !! filter_var ($val, FILTER_VALIDATE_EMAIL); } ///////////// // URL // ///////////// /** Return true if the provided value is a valid URL * @param string $val The value to check * @return boolean */ public function is_URL ($val) { return \verify::staticIs_URL ($val); } /** Return true if the provided value is a valid URL in static mode * @param string $val The value to check * @return boolean */ public static function staticIs_URL ($val) { return !! filter_var ($val, FILTER_VALIDATE_URL); } }