преобразовать строку по заданной маске

Нужно преобразовать строку телефона к заданному шаблону на php Шаблон такой "+38(999) 999-99-99" где 9 - любое число Написал что то вроде этого но это это не во всех случаях срабатывает. Как можно с помощью регулярных выражений такое сделать или каким-то другим способом

$telephone = '+38(068)1234567';
    
    if(stristr($telephone, '-') === FALSE) {
          $number = substr($telephone, -7);
          
          if(stristr($telephone, '(') === FALSE && stristr($telephone, ')') === FALSE) {
            $phone_prefix = '('.substr($telephone, 0, 3).') ';
            $telephone_number = substr($telephone, 3);
            $telephone = $phone_prefix.$telephone_number;
          }
          
          $prefix = substr($telephone,0, -7);
          $telephone = substr_replace($number, '-', 3, 0);
          $telephone = substr_replace($telephone, '-', 6, 0);
          
          $telephone =  $prefix.$telephone;
     }
  
  if(stristr($telephone, '+38') === FALSE) {
    $telephone = '+38'.$telephone;
  }

Ответы (0 шт):