Created
February 22, 2019 14:07
-
-
Save progmult/7fa7c05c20d05642e1bfafe463b309c0 to your computer and use it in GitHub Desktop.
Возвращает отформатированный номер телефона, в виде 8 (987) 123-45-67, можно передавать несколько номеров
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Возвращает отформатированный номер телефона, в виде 8 (987) 123-45-67 | |
* Если введено несколько номеров (через запятую и т.д.), разделяет результат. | |
* @param string $phone телефон (возможно несколько номеров через запятую, точку с запятой, слеш или перенос строки) | |
* @param string $delimiter разделитель результата при возврате ("<br/>" по-умолчанию) | |
*/ | |
function formatPhone($phone,$delimiter = '<br/>') { | |
$phone = str_replace(', ', ',', $phone); | |
$phone = str_replace('; ', ';', $phone); | |
$phone = str_replace('/ ', '/', $phone); | |
if (strpos($phone,',')) { | |
// разделить по запятым | |
$numbers = explode(",", $phone); | |
} | |
elseif (strpos($phone,';')) { | |
// разделить по точкам с запятой | |
$numbers = explode(";", $phone); | |
} | |
elseif (strpos($phone,'/')) { | |
// разделить по слешу | |
$numbers = explode("/", $phone); | |
} | |
else { | |
// разделить по переносу строки | |
$numbers = explode("\n", $phone); | |
} | |
/* | |
echo '<pre>'; | |
print_r($numbers); | |
echo '</pre>'; | |
*/ | |
$phone = array(); | |
foreach($numbers as $number) | |
{ | |
$phone[] = preg_replace('~.*(\d{3})[^\d]*(\d{3})[^\d]*(\d{2})[^\d]*(\d{2}).*~', '8 ($1) $2-$3-$4', $number); | |
} | |
return implode($delimiter,$phone); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment