| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 | 
							- <?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(
 
-     '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;
 
- }
 
 
  |