Files
DomFramework/verify.php
Dominique Fournier eddb8b25e5 verify : add the static methods
verify : add the unit tests


git-svn-id: https://svn.fournier38.fr/svn/ProgSVN/trunk@3520 bf3deb0d-5f1a-0410-827f-c0cc1f45334c
2017-04-13 09:41:39 +00:00

258 lines
6.5 KiB
PHP

<?php
/** DomFramework
@package domframework
@author Dominique Fournier <dominique@fournier38.fr> */
/** 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 $this->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 $this->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 $this->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 $this->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 $this->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 $this->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 ($this->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 $this->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 $this->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 $this->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 $this->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);
}
}