Reguliere Expressies is een manier om patronen te valideren.
Alleen letters :
function valid_alpha ($value)
{
return preg_match("/^[a-z]+$/i", $value);
}
Alleen letters en nummers :
function valid_alpha_num ($value)
{
return preg_match("/^[a-z0-9]+$/i", $value);
}
Een boolean 0, 1 of true, false :
function valid_boolean ($value)
{
return preg_match("/^true$|^1|^false|^0$/i", $value);
}
Alleen nummmers :
function valid_digit ($value)
{
return (bool) preg_match("/^[0-9]+$/", $value);
}
Een Nederlandse postcode (e.g. 1234 AA) :
function valid_dutch_postcode ($value)
{
return preg_match('/^[1-9][0-9]{3} ?[a-zA-Z]{2}$/', $value);
}
Een Nederlands telefoonnummer (e.g. 123-1234567) :
function valid_dutch_phone ($value)
{
$regex = '^[0-9]{2,4}[-]?[0-9]{6,8}$';
$value = str_replace(array(' ', '-'), array('', ''), $value);
return (strLen($value) == 10 && eregi($regex, $value));
}
Een e-mail adres (e.g. xxx@xxx.xx) :
function valid_email ($value)
{
return preg_match("/^[a-z0-9_\.-]+@([a-z0-9]+([\-]+[a-z0-9]+)*\.)+[a-z]{2,7}$/i", $value);
}
Een e-mail adres (e.g. xxx@xxx.xx) + controle op MX records :
function valid_email_host ($value)
{
$check = array();
if (eregi("^[0-9a-z_]([-_.]?[0-9a-z_])*@[0-9a-z][-.0-9a-z]*\\.[a-z]{2,3}[.]?$", $value, $check))
{
$host = substr(strstr($check[0], '@'), 1).".";
if (function_exists('getmxrr'))
{
$tmp = null;
if (getmxrr($host, $tmp))
{
return true;
}
// this will catch dns that are not mx.
if (checkdnsrr($host,'ANY'))
{
return true;
}
}
else
{
return ($host != gethostbyname($host));
}
}
return false;
}
Een bestandsnaam (punten zijn toegestaan, maar geen slashes of andere tekens) :
function valid_filename ($value)
{
return preg_match("{^[^\\/\*\?\:\,]+$}", $value);
}
Alleen nummers, het minteken en een komma :
function valid_float ($value)
{
return (bool) preg_match("/^-?([0-9]*\.?,?[0-9]+)$/", $value);
}
Alleen nummers en het minteken :
function valid_integer ($value)
{
return (bool) preg_match("/^-?[0-9]+$/", $value);
}
Een IP-Adres e.g. xxx.xxx.xxx.xxx :
function valid_ip ($value)
{
return preg_match('/^\d{1,3}\.\d{1,3}\.\d{1,3}.\d{1,3}:?\d*$/', $value);
}
Alleen letters en cijfers, maar geen spaties (ASCII 33 - 126) :
function valid_password ($value)
{
return preg_match("/^[\41-\176]+$/", $value);
}
Alle tekens, maar geen control tekens (ASCII 0 - 31) :
function valid_string ($value)
{
return preg_match("/^[^\x-\x1F]+$/", $value);
}
Hetzelfde als valid_sting maar met newline tekens en tabs :
function valid_text ($value)
{
return preg_match("/^([^\x-\x1F]|[\r\n\t])+$/", $value);
}
Een URL :
function valid_url ($value)
{
$regex = '/^((http|ftp|https):\/{2})?(([0-9a-zA-Z_-]+\.)+[a-zA-Z]+)((:[0-9]+)?)((\/([0-9a-zA-Z=%\.\/_-]+)?(\?[0-9a-zA-Z%\/&=_-]+)?)?)$/';
$result = preg_match( $regex, $value, $match );
return $result;
}
Een URL + controle op http verbinding :
function valid_url_host ($href)
{
if (strlen($href) <= 3)
{
return false;
}
if (!preg_match("/^[a-z]+:/i", $href))
{
$href = 'http://'.$href;
}
if (preg_match("/^http:\/\//", $href))
{
$fp = @fopen($href, 'r');
if ($fp)
{
@fclose($fp);
return true;
}
}
return false;
}
Opmerking : De functie eregi is DEPRECATED. (wordt gebruikt in valid_dutch_phone en valid_email_host).