Abreviar nomes do meio (sobrenome)
Olá para todos... Mais uma função para nosso acervo..
Em um projeto que estou gerenciando surgiu a necessidade de abreviar nomes que viriam do banco de dados, o problema é que não achei script algum na web. Resolvi então desenvolver uma função, que me atendeu muito bem por sinal, e quero compartilhá-la com a comunidade, der repente alguém precise em um futuro próximo, em fim, é melhor sobrar do que faltar. rs
Bom, a função está toda comentada, porém ainda assim se surgir alguma duvida, postem. Não criei algo muito complexo, pois o simples me atendeu. Quanto aos nomes compostos, não criei nenhuma regra para tal, somente para preposições como de, do, da, etc..
A função pode ser melhorada, fiquem a vontade.
Segue abaixo:
Código:
function abrevia($nome) {
/* Função para abreviar nomes do meio (sobrenome)
-- > Não está completa e pode ser melhorada
-- > Até o momento não tem regras para nomes compostos
-- > Desenvolvido por: Leonardo Marriel
-- > Contato: leomarriel@hotmail.com
*/
$nome = explode(" ", $nome); // cria o array $nome com as partes da string
$num = count($nome); // conta quantas partes o nome tem
if($num == 2) { // se tiver somente nomes, não abrevia
return $nome; // retorna nome original
}
else { // pelo contrário executa a função
$count = 0;
$novo_nome = ''; // variavel que irá concatenar as partes do nome
foreach($nome as $var) { // loop no array
if($count == 0) {$novo_nome .= $var.' ';} // mostra primeiro nome
$count++; // acrescenta +1 na no contador
/* agora só irá abreviar os nomes do meio, com a condição abaixo, porém, se for algum contido no array de preposições mais comuns, não irá abreviar */
if(($count >= 2) && ($count < $num)) {
$array = array('do', 'Do', 'DO', 'da', 'Da', 'DA', 'de', 'De', 'DE', 'dos', 'Dos', 'DOS', 'das', 'Das', 'DAS');
if(in_array($var, $array)) {
$novo_nome .= $var.' '; // não abreviou
} // fim if array
else {
$novo_nome .= substr($var, 0, 1).'. '; // abreviou
} // fim else
} // fim if nomes do meio
if($count == $num) {$novo_nome .= $var;} // mostra último nome, quando o contador (count) alcançar o número total de valores do array $nome
} // fim foreach
return $novo_nome; // retorna novo nome
} // fim else
} // fim da função
Execução:
<?php
$nome = 'José Francisco da Silva Sauro';
echo abrevia($nome);
// ou
echo abrevia('José Francisco da Silva Sauro');
?>Discussão (4)
Carregando comentários...