Converte para maiúsculas a primeira letra de cada palavra, resolvendo o problema de acentos

Publicado por Sérvulo dos Anjos Meneses (última atualização em 26/09/2014)

[ Hits: 10.577 ]

Homepage: www.megasam.com.br

Download 6073.converte.php




A função em PHP resolve o problema de converter para maiúsculas o primeiro caractere de cada palavra, onde não conseguia converter quando iniciava com vogal com acento. Esta função resolve esse problema.

Melhorem o script e postem aqui.

  



Esconder código-fonte

<?php
function converte($nome)
{
// Converte toda a string para minúscula
$nome = strtr(strtolower($nome),"ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÜÚÞß","àáâãäåæçèéêëìíîïðñòóôõö÷øùüúþÿ");

//Usamos a explode() para separar a string por palavras
$palavra=explode(" ",$nome);

// Percorremos por cada palavra
for ($i=0; $i < count($palavra) ; $i++)
    {
    // Com o if elimine as palavras que NÃO poderão ter a primeira letra em maiúscula
    if ($palavra[$i] != "da" && $palavra[$i] != "de" && $palavra[$i] != "do" && $palavra[$i] != "das" && $palavra[$i] != "dos")
       {
       $palavra[$i] = ucwords($palavra[$i]);// ucwords - Converte para maiúsculas o primeiro caractere de cada palavra exceto as palavras que iniciarem com acento
       $primeira  = substr( $palavra[$i], 0, 1);// Captura o primeiro caractere da palavra
       $resto  = substr( $palavra[$i], 1, 100);// Captura do segundo caractere da palavra em diante
       //str_replace — Substitui todas as ocorrências da string de procura com a string de substituição
       //strtr — Traduz certos caracteres
       //Em seguida se a primeira letra da palavra tiver acento, será convertida para maiúscula com acento
       $primeira = str_replace($primeira,strtr($primeira,"àáâãäåæçèéêëìíîïðñòóôõö÷øùüúþÿ","ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÜÚÞß"),$primeira);
       // Junte a primeira letra convertida com o restante da palavra.
       $palavra[$i] = $primeira.$resto;
       }
    // Junte novamente as palavras em uma frase com as primeiras letras convertidas em maiúsculas. E com a acentuação correta.
    $nomeconvertido = $nomeconvertido." ".$palavra[$i];
    }

return $nomeconvertido;
};





$nometeste = "ÍLDA JÚLIA DE ASSUNÇÃO DOS SANTOS";
echo "$nometeste"; //Exibir STRING ORIGINAL
echo "<br>";
echo converte($nometeste); //Exibir STRING CONVERTIDA


?>

Scripts recomendados

Fast Template CVS Revision 1.2.2

Transformar datas para gravar no banco de dados (MySQL, Postgres e outros)

Hosting Control

Função para gerar números aleatórios

format_calc()


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts