SkyNetYar, нет, это не сарказм, а истинное непонимание того, что Вам нужно.. Вернее я понимаю, что Вам нужен работающий код, но увы такого нет.
Псевдокодом (с ошибками) это выглядит так (файл init.php):
Код |
---|
// Обработчик события
AddEventHandler("crm", "OnBeforeCrmDealAdd", function( &$arFields )
{
if ( !empty($arFields['COMMENT']) )
{
/* @var Массив полученных из комментария телефонов */
$arPhones = getPhonesFromText( $arFields['COMMENT'] );
if ( !empty( $arPhones ) )
{
foreach( $arPhones as $k => $phone )
{
$arFields['FM']['PHONE']['n'.$k] = ['VALUE'=>$phone, 'TYPE'=>'WORK'];
}
}
}
});
/**
* Функция принимает на вход текст и возвращает массив телефонных номеров в нем
*
* @see https://habrahabr.ru/post/110731/
* @param string $text
* @return array
*/
function getPhonesFromText( $text )
{
$arPhones = [];
if ( preg_match_all('#((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}#', $text, $arMatches) )
{
foreach ($arMatches[1] as $phone)
{
$arPhones[] = $phone;
}
}
array_unique($arPhones);
return $arPhones;
} |
Это топорный вариант, и когда вы попытаетесь распознать НЕ русский номер телефона или номер телефона например из текста: "Звони мне на: 8 пять пять три 359 75 65"