<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://wiki.kint.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%82%D0%B5%D0%BB%D0%B5%D1%84%D0%BE%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BD%D0%BE%D0%BC%D0%B5%D1%80%D0%B0_%281%D0%A1%29</id>
	<title>Форматирование телефонного номера (1С) - История изменений</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.kint.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%82%D0%B5%D0%BB%D0%B5%D1%84%D0%BE%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BD%D0%BE%D0%BC%D0%B5%D1%80%D0%B0_%281%D0%A1%29"/>
	<link rel="alternate" type="text/html" href="http://wiki.kint.ru/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%82%D0%B5%D0%BB%D0%B5%D1%84%D0%BE%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BD%D0%BE%D0%BC%D0%B5%D1%80%D0%B0_(1%D0%A1)&amp;action=history"/>
	<updated>2026-05-19T08:06:19Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.31.15</generator>
	<entry>
		<id>http://wiki.kint.ru/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%82%D0%B5%D0%BB%D0%B5%D1%84%D0%BE%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BD%D0%BE%D0%BC%D0%B5%D1%80%D0%B0_(1%D0%A1)&amp;diff=21573&amp;oldid=prev</id>
		<title>Павел Лазарев: Новая страница: «Категория:Примеры кода 1С  ==На php== Источник:  &lt;source lang=php&gt;  &lt;?php  /**  * Проверка корректности тел...»</title>
		<link rel="alternate" type="text/html" href="http://wiki.kint.ru/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%82%D0%B5%D0%BB%D0%B5%D1%84%D0%BE%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BD%D0%BE%D0%BC%D0%B5%D1%80%D0%B0_(1%D0%A1)&amp;diff=21573&amp;oldid=prev"/>
		<updated>2010-10-07T06:36:33Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «&lt;a href=&quot;/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B_%D0%BA%D0%BE%D0%B4%D0%B0_1%D0%A1&quot; title=&quot;Категория:Примеры кода 1С&quot;&gt;Категория:Примеры кода 1С&lt;/a&gt;  ==На php== Источник:  &amp;lt;source lang=php&amp;gt;  &amp;lt;?php  /**  * Проверка корректности тел...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Категория:Примеры кода 1С]]&lt;br /&gt;
&lt;br /&gt;
==На php==&lt;br /&gt;
Источник:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=php&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Проверка корректности телефонного номера (с кодом города) в начале строки.&lt;br /&gt;
 * Пример строки с корректным тел. номером: &amp;quot;8-495-1234567, 111-22-33 (*620)&amp;quot;.&lt;br /&gt;
 *&lt;br /&gt;
 * Функция умеет форматировать тел. номер в международный формат.&lt;br /&gt;
 * Пример строки с форматированным тел. номером : &amp;quot;+7 (495) 123-45-67, 111-22-33 (*620)&amp;quot;.&lt;br /&gt;
 *&lt;br /&gt;
 * @param   string  $s        тел. номер&lt;br /&gt;
 * @param   array   &amp;amp;$parsed  массив частей тел. номера с ключами:&lt;br /&gt;
 *                              zone   -- зона, например: +7&lt;br /&gt;
 *                              code   -- код города, например: 495 (целое число типа int)&lt;br /&gt;
 *                              number -- номер, например: 1234567  (целое число типа int)&lt;br /&gt;
 *                              main   -- тел. номер в международном формате&lt;br /&gt;
 *                              extra  -- остаток после тел. номера&lt;br /&gt;
 *                              all    -- тел. номер в международном формате + остаток&lt;br /&gt;
 * @param   string  $hyphen   дефис  для форматироания тел. номера в международном формате&lt;br /&gt;
 * @param   string  $space    пробел для форматироания тел. номера в международном формате&lt;br /&gt;
 * @return  bool              возвращает TRUE, если тел. номер корректный и FALSE в противном случае.&lt;br /&gt;
 *&lt;br /&gt;
 * @link    http://ru.wikipedia.org/wiki/Телефонный_код_страны&lt;br /&gt;
 *&lt;br /&gt;
 * @license  http://creativecommons.org/licenses/by-nc-sa/3.0/&lt;br /&gt;
 * @author   Nasibullin Rinat &amp;lt;n a s i b u l l i n  at starlink ru&amp;gt;&lt;br /&gt;
 * @charset  ANSI&lt;br /&gt;
 * @version  3.1.0&lt;br /&gt;
 */&lt;br /&gt;
function phone_number_check($s, &amp;amp;$parsed = null, $hyphen = &amp;quot;\xe2\x80\x93&amp;quot;, $space = &amp;quot;\xc2\xa0&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
    static $trans = array(&lt;br /&gt;
        #DEPRECATED:&lt;br /&gt;
        #'-'  =&amp;gt; ' ',&lt;br /&gt;
        #'('  =&amp;gt; ' ',&lt;br /&gt;
        #')'  =&amp;gt; ' ',&lt;br /&gt;
        &amp;quot;\t&amp;quot; =&amp;gt; ' ',            # [TAB]&lt;br /&gt;
        &amp;quot;\xc2\xa0&amp;quot;     =&amp;gt; ' ',  # UTF-8 &amp;amp;nbsp;&lt;br /&gt;
        &amp;quot;\xe2\x88\x92&amp;quot; =&amp;gt; '-',  # UTF-8 &amp;amp;minus;&lt;br /&gt;
        &amp;quot;\xe2\x80\x93&amp;quot; =&amp;gt; '-',  # UTF-8 &amp;amp;ndash;&lt;br /&gt;
        &amp;quot;\xe2\x80\x94&amp;quot; =&amp;gt; '-',  # UTF-8 &amp;amp;mdash;&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    #коды номеров городских телефонов России&lt;br /&gt;
    #TODO дополнить список с крупными городами России&lt;br /&gt;
    static $city_codes = array(&lt;br /&gt;
        495 =&amp;gt; '',  #Москва&lt;br /&gt;
        499 =&amp;gt; '',  #Москва&lt;br /&gt;
        496 =&amp;gt; '',  #Московская область&lt;br /&gt;
        812 =&amp;gt; '',  #Санкт-Петербург&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    /*&lt;br /&gt;
    Примеры правильных тел. номеров:&lt;br /&gt;
      #3      #4  #5 #6&lt;br /&gt;
      (812)   571-84-78&lt;br /&gt;
      (4922)  33-64-32&lt;br /&gt;
      (41322) 977-17&lt;br /&gt;
    */&lt;br /&gt;
    $s = trim(preg_replace('/\x20\x20+/s', ' ', strtr($s, $trans)));  #вырезаем лишние пробелы&lt;br /&gt;
    if (! preg_match('/^  (?!-)&lt;br /&gt;
                          (?P&amp;lt;zone&amp;gt;\+\d|8)?  #1 зона или код выхода на межгород (необязательно)&lt;br /&gt;
                          (?:\x20?\(|(-|^))  #2&lt;br /&gt;
                          (?P&amp;lt;code&amp;gt;\d{3,5})  #3 код города или региона для мобильного номера&lt;br /&gt;
                          (?(2)-|\)\x20?)    #условные подмаски&lt;br /&gt;
                          (\d{2,3})          #4 первая группа&lt;br /&gt;
                          -?&lt;br /&gt;
                          (\d{2})            #5 вторая группа&lt;br /&gt;
                          (                  #6&lt;br /&gt;
                            -?&lt;br /&gt;
                            (\d{2})          #7 третья группа (необязательно)&lt;br /&gt;
                          )?&lt;br /&gt;
                          (?!\d)&lt;br /&gt;
                          (.*)               #8&lt;br /&gt;
                       $/sx', $s, $m)) return false;&lt;br /&gt;
    $zone   = ($m['zone'] === '' || $m['zone'] === '8' ? '+7' : $m['zone']);&lt;br /&gt;
    $code   = $m['code'];&lt;br /&gt;
    $number = $m[4] . $m[5] . @$m[7];&lt;br /&gt;
    if (strlen($code . $number) !== 10) return false;  #всего д.б. 10 цифр!&lt;br /&gt;
&lt;br /&gt;
    /*&lt;br /&gt;
    Номер __городского__ телефона НЕ может начинаться с нуля или восьмёрки (мобильный может)&lt;br /&gt;
      0 зарезервирован за спецслужбами (01, 02, 03, 04, 09)&lt;br /&gt;
      8 зарезервирован за кодом междугородного вызова&lt;br /&gt;
    */&lt;br /&gt;
    if (array_key_exists($code, $city_codes) &amp;amp;&amp;amp; preg_match('/^[08]/s', $number)) return false;&lt;br /&gt;
&lt;br /&gt;
    #защита &amp;quot;от дурака&amp;quot; для номеров типа 222-22-22&lt;br /&gt;
    if (preg_match('/^(\d)\\1{6,}/s', $number)) return false;&lt;br /&gt;
&lt;br /&gt;
    #форматируем тел. номер в международный формат&lt;br /&gt;
    $main = str_replace('-', $hyphen, $zone . $space . '(' . $code . ')' . $space . $m[4] . '-' . $m[5] . (array_key_exists(7, $m) ? '-' . $m[7] : '') );&lt;br /&gt;
    $parsed = array(&lt;br /&gt;
        'zone'   =&amp;gt; $zone,&lt;br /&gt;
        'code'   =&amp;gt; intval($code),&lt;br /&gt;
        'number' =&amp;gt; intval($number),&lt;br /&gt;
        'main'   =&amp;gt; $main,&lt;br /&gt;
        'extra'  =&amp;gt; $m[8],&lt;br /&gt;
        'all'    =&amp;gt; $main . $m[8],&lt;br /&gt;
    );&lt;br /&gt;
    #d($parsed);&lt;br /&gt;
    return true;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Павел Лазарев</name></author>
		
	</entry>
</feed>