Ao decorrer de um projeto precisei transformar strings em maiúsculas ou minúsculas conforme ocasião e para isso o PHP fornece as funções abaixo:
strtolower – Converte uma string para minúsculas
strtoupper – Converte uma string para maiúsculas
ucfirst – Converte para maiúscula o primeiro caractere de uma string
ucwords -Converte para maiúsculas o primeiro caractere de cada palavra
Porém nossa língua portuguesa existem as preciosidades dos acentos, na qual o PHP não consegue converter nativamente. Então resolvi fazer uma função para elas, veja:
// Função para transformar strings em Maiúscula ou Minúscula com acentos
// $palavra = a string propriamente dita
// $tp = tipo da conversão: 1 para maiúsculas e 0 para minúsculas
function convertem($term, $tp) {
if ($tp == "1") $palavra = strtr(strtoupper($term),"àáâãäåæçèéêëìíîïðñòóôõö÷øùüúþÿ","ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÜÚÞß");
elseif ($tp == "0") $palavra = strtr(strtolower($term),"ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÜÚÞß","àáâãäåæçèéêëìíîïðñòóôõö÷øùüúþÿ");
return $palavra;
}
// Exemplo de Utilização - Maiúscula
$exemplo1 = "notícias";
echo convertem($exemplo1, 1);
// Exemplo de Utilização - Minúscula
$exemplo2 = "NOTÍCIAS";
echo convertem($exemplo2, 0);
Bom, agora com esta função já da pra converter/transformar qualquer string que tenha caracteres acentuados em maiúscula ou minúscula. E não se esqueça, o seu comentário é o meu pagamento para continuar publicando minhas dicas e côdigos. ;)
71 comments
Fernando, valeu! Precisando, estamos a disposição! :)
Dei uma melhorada…
function convertem($term, $tp) {
switch($tp) {
//Converte uma string para minúsculas
case ‘1’:
$palavra = strtr(strtoupper($term),”àáâãäåæçèéêëìíîïðñòóôõö÷øùüúþÿ”,”ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÜÚÞß”);
break;
//Converte uma string para maiúsculas
case ‘2’:
$palavra = strtr(strtolower($term),”ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÜÚÞß”,”àáâãäåæçèéêëìíîïðñòóôõö÷øùüúþÿ”);
break;
//Converte para maiúscula o primeiro caractere de uma string
case ‘3’:
$palavra = strtr(ucfirst($term),”ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÜÚÞß”,”àáâãäåæçèéêëìíîïðñòóôõö÷øùüúþÿ”);
break;
//Converte para maiúsculas o primeiro caractere de cada palavra
case ‘4’:
$palavra = strtr(ucwords($term),”ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÜÚÞß”,”àáâãäåæçèéêëìíîïðñòóôõö÷øùüúþÿ”);
break;
}
return $palavra;
}
Cara, muito obrigado, tava me matando aqui, sou novo em php, salvou minha pele!!!! \O/
[…] fonte: http://dourado.net/2007/05/15/php-converter-string-para-maiuscula-ou-minuscula-com-acentos/ Compartilhe isso:TwitterFacebookGostar disso:GosteiSeja o primeiro a gostar disso. Por adnanllprogramador Postado em PHP Tagged função, php 0 […]
Obrigado pela ajuda
mb_strtoupper($str) funcionou comigo. Mas isso era apenas para um script pessoal, nada de público. Mesmo assim sua funçao em php4 funciona!
Valew!!!!
Carlos, fique a vontade!
Muito obrigada!!!!!!! ;)
Muito boa a sua iniciativa. Obrigado!
Obrigada, deu certo! A segunda função incrementada do Marcus não funcionou aqui não. Abraços
Muito obrigado, irmão!
Valeu demais! Você resolveu o meu problema.
Ronaldo, precisando de algo, so dizer!
é… pra quem precisa trabalhar com clientes antigos que ainda tem versões ultrapassadas no servidor, esta foi a solução. obrigado pelo share!
Essa função se torna desnecessária sendo que existe “mb_convert_case” que converte tudo, sem ter nenhum problema com acentuação. Nunca mais utilizei funções externas. Fica a Dica!
Documentação: http://php.net/manual/pt_BR/function.mb-convert-case.php
Temiscocles, isso ai.. é que o post é bem antigo. Mas ta valendo… :)
Parabéns! Sua função convertem salvou a lavoura! Grato!
ótimo cara.ajudou muito
Parabéns, ótima função!!! Obrigado
Show, me ajudou um monte.
Valeu, abraço.
Parabéns amigo.
Muito obrigado pela ajuda, funcionou perfeitamente.
Abraço.