Sendo básico nestas andanças, tenho provavelmente uma dúvida ainda mais básica mas, como diz o ditado, quem não sabe é como quem não vê. Vamos à questão,
-> Utilizo um ‘form’ com o campo texto do tipo ‘Nome’ e quero validá-lo de forma que ao introduzir o respectivo nome este se converta/formate em maiúsculas, independente da forma como for introduzido.
Se escrever ‘FerNAndo António coimbra’, que este seja transformado em ‘FERNANDO ANTONIO COIMBRA’ (por exemplo). Ou, em alternativa, também me servia que apenas a primeira letra de cada palavra do nome fosse formatada em maiúsculas, do tipo ‘Fernando Antonio Coimbra’.
Antecipadamente grato pela ajuda que possa surgir…
Se você quizer complementar a class do Wanderson, tem outra função que você pode adicionar:
function static normaliza($nome) {
$arrayNome = explode(" ", $nome); //Retorna uma matriz de strings da variavel nome, separando pelos espacos
$tamanhoArray = count($arrayNome); //Conta a quantidade de elementos do array
$arrayConectivos = array('', 'da', 'de', 'di', 'do', 'du', 'das', 'dos', 'e');
$nomeNormalizado = "";
for ($cont = 0; $cont < $tamanhoArray; $cont++) {
$temp = $arrayNome[$cont];
$temp = mb_strtolower($temp, static::encoding());
if (array_search($temp, $arrayConectivos) == null)
$nomeNormalizado .= ucfirst($temp) . " ";
else
$nomeNormalizado .= $temp . " ";
}
return(trim($nomeNormalizado));
}
Essa função não inclui algumas palavras que compõe o sobre nome, o title() usa mb_convert_case() do PHP convertando todas a palavras, até o "Da/De/Di/Do/Du" (Fulano Da Silva).
UHAU, espectáculo… funcionou à primeira. Optei por colocar a totalidade do nome em maiúsculas.
Confesso que a dica do ‘Wanderson’ foi fácil de adicionar. Quanto à sugestão do ‘Newerton’, parecendo-me interessante para a distinção das palavras ‘de, da etc.’ do nome, em concreto - para o primeiro tipo de opção, não consegui implementar.
Tentei colocar o código no model, no ficheiro novo 'helpers/WString.php, entre outras tentativas e não vi o resultado. Culpa da minha ignorância, certamente.
Desde já, o meu sincero agradecimento… Vocês são GRANDES!!!