phone.il.inc in Phone 6
CCK Field for Isreali phone numbers.
File
phone.il.incView source
<?php
//drived from au module and manipulated by Moshe Beeri, email: moshe.beeri (at-shetrudel) google mail
/**
* @file
* CCK Field for Isreali phone numbers.
*/
function phone_il_metadata() {
return array(
'label' => 'Phone Numbers - Israel',
'error' => '"%value" is not a valid Israeli phone number',
);
}
/**
* Verification for Israel Phone Numbers.
*
* @param string $phonenumber
* @return boolean Returns boolean FALSE if the phone number is not valid.
*/
function valid_il_phone_number($phonenumber) {
//$phonenumber = trim($phonenumber);
// strip formatting chars
$phonenumber = preg_replace('/[\\-() ]/', '', $phonenumber);
// strip optional '+972' or '0' prefixes
$phonenumber = preg_replace('/^(\\+972)/', '', $phonenumber);
//$rules[] = array("Prefix","Minimum length","Maximum length");
//http://he.wikipedia.org/wiki/%D7%A7%D7%99%D7%93%D7%95%D7%9E%D7%AA_%D7%98%D7%9C%D7%A4%D7%95%D7%9F
$rules[] = array(
"02",
7,
10,
);
$rules[] = array(
"03",
7,
10,
);
$rules[] = array(
"04",
7,
10,
);
$rules[] = array(
"08",
7,
10,
);
$rules[] = array(
"09",
7,
10,
);
$rules[] = array(
"072",
7,
10,
);
$rules[] = array(
"073",
7,
10,
);
$rules[] = array(
"074",
7,
10,
);
$rules[] = array(
"076",
7,
10,
);
$rules[] = array(
"077",
7,
10,
);
$rules[] = array(
"078",
7,
10,
);
$rules[] = array(
"050",
7,
10,
);
$rules[] = array(
"052",
7,
10,
);
$rules[] = array(
"054",
7,
10,
);
$rules[] = array(
"057",
7,
10,
);
$rules[] = array(
"1800",
6,
10,
);
$rules[] = array(
"1801",
6,
10,
);
$rules[] = array(
"1700",
6,
10,
);
foreach ($rules as $rule) {
if (preg_match('/^' . $rule[0] . '/', $phonenumber) && strlen($phonenumber) >= $rule[1] && strlen($phonenumber) <= $rule[2]) {
return TRUE;
}
}
return FALSE;
}
/**
* Formatting for Israeli Phone Numbers. Based upon ITU-T E.123 (but let's not get too crazy)
*
* @param string $phonenumber
* @return string Returns a string containing the phone number with some formatting.
*/
function format_il_phone_number($phonenumber) {
$prefix = '';
$extension = '';
// strip old formatting chars
$phonenumber = preg_replace('/[\\-() ]/', '', $phonenumber);
/*
* strip and save the +9726 prefix if found
*/
if (preg_match('/^\\+972/', $phonenumber, $match)) {
$prefix = '+972 ';
$phonenumber = str_replace('+972', '', $phonenumber);
}
/*
* 9 phones digit numbers
* Eg. 03 9999 999
*/
if (preg_match('/^([0-9]{2})([0-9]{4})([0-9]{3})$/', $phonenumber, $match)) {
return $prefix . $match[1] . ' ' . $match[2] . ' ' . $match[3] . $extension;
}
/*
* 10 digit numbers
* Eg. 1800 999 999
*/
if (preg_match('/^([0-9]{4})([0-9]{3})([0-9]{3})$/', $phonenumber, $match)) {
return $prefix . $match[1] . ' ' . $match[2] . ' ' . $match[3] . $extension;
}
/*
* cell phone
* Eg. 054 9999 999
*/
if (preg_match('/^([0-9]{3})([0-9]{4})([0-9]{3})$/', $phonenumber, $match)) {
return $prefix . $match[1] . ' ' . $match[2] . ' ' . $match[3] . $extension;
}
// default
return $prefix . $phonenumber . $extension;
}
Functions
Name | Description |
---|---|
format_il_phone_number | Formatting for Israeli Phone Numbers. Based upon ITU-T E.123 (but let's not get too crazy) |
phone_il_metadata | @file CCK Field for Isreali phone numbers. |
valid_il_phone_number | Verification for Israel Phone Numbers. |