Ir para conteúdo
Fórum Script Brasil
  • 0

Converter Caracteres Iniciais Para Maiúsculos, Exceto "de",


Beraldo

Pergunta

Script postado por: Illidan

Converter caracteres iniciais para maiúsculos, exceto "de", "do", etc

Função ucwords() melhorada!

Se você já utilizou a função ucwords() e se decepcionou ao vê-la colocar a primeira letra de TODAS as palavras em maiúsculas, sendo que seria mais legal se ela deixasse passar um "de" ou "dos" pelo meio, aqui está a função pra resolver isso.

Ela transforma um "edson arantes do nascimento" em "Edson Arantes do Nascimento".

Abraços!

function special_ucwords($string) {

/**

* @autor: Carlos Reche

* @data: 08/09/2004

*/

$retorno = array();

$string = strtolower(trim(preg_replace("/\s+/", " ", $string)));

$palavras = explode(" ", $string);

$retorno[] = ucfirst($palavras[0]);

unset($palavras[0]);

foreach ($palavras as $palavra)

{

if (!preg_match("/^([dn]?[aeiou]?|em)$/i", $palavra))

{

$palavra = ucfirst($palavra);

}

$retorno[] = $palavra;

}

return implode(" ", $retorno);

}

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
Guest Nostradamus

Esse também resolve os problemas do meio da palavra...

Mais simples de entender...

;)

function converteNome($string)
       // Converte strings para Iniciais maiúsculas
       // Não converte "da,do,dos,das,de ..." nomes no meio iniciando do D com 2 ou 3 letras
       {
           if($string=="")
              return $string;
              $string=strtolower($string);
           $string[0]=strtoupper($string[0]);
           for($atual=1;$atual<=strlen($string);$atual++)
           {
               if($string[$atual]==" ")
                      if($string[$atual+1]!="d")
                       $string[$atual+1]=strtoupper($string[$atual+1]);
                   else
                      if(!($string[$atual+3]==" " || $string[$atual+4]==" "))
                           $string[$atual+1]=strtoupper($string[$atual+1]);
           }           
           return $string;
       }

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...