PHP para capitalizar todas as letras (incluindo após uma barra), exceto para certas palavras

Eu quero usar o PHP para limpar alguns títulos, capitalizando cada palavra, incluindo aqueles que seguem uma barra. No entanto, eu não quero capitalizar as palavras 'e', ​​'de' e 'o'.

Aqui estão duas seqüências de caracteres de exemplo:

tecnologia / técnico contábil e contabilidade

cirurgia ortopédica da coluna vertebral

Deve corrigir para:

Técnico em Contabilidade / Técnico e Contabilidade

Cirurgia Ortopédica da Coluna Vertebral

Aqui está o que eu tenho atualmente. Não sei como combinar a implosão com o preg_replace_callback.

// Will capitalize all words, including those following a slash
$major = implode('/', array_map('ucwords',explode('/',$major)));

// Is supposed to selectively capitalize words in the string
$major = preg_replace_callback("/[a-zA-Z]+/",'ucfirst_some',$major);

function ucfirst_some($match) {
   $exclude = array('and','of','the');
   if ( in_array(strtolower($match[0]),$exclude) ) return $match[0];
   return ucfirst($match[0]);
}

Agora ele capitaliza todas as palavras da string, incluindo as que eu não quero.

questionAnswers(2)

yourAnswerToTheQuestion