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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | // 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. ;)

junho 1st, 2007 at 10:02
Olhaaaaaa, esse codigo me ajudou muito viu… ficava muito feio converter strings e perder o acento com isso…
parabens.. =]
junho 24th, 2007 at 13:57
já ouviu falar que esta função superou este impecilho em uma nova versão do php (não sei a partir de qual)… mas não tenho certeza quanto a isso… vou pesquisar
setembro 30th, 2007 at 21:03
Muito legal! Valeu. Consegui resolver rapidamente os títulos de um site em Joomla!
title),”àáâãäåæçèéêëìíîïðñòóôõö÷øùüúþÿ”,”ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÜÚÞß”);?>
Obrigado.
março 25th, 2008 at 05:44
Nota 10 !!! Caiu como uma luva para o que eu queria.
março 25th, 2008 at 11:47
usei isso! :D
junho 4th, 2008 at 03:55
Valeu pela dica brother… Foi muito útil
[ =
junho 4th, 2008 at 08:40
Amém
agosto 24th, 2008 at 18:26
Deus lhe abençoe, me ajudou também
eu te amo
outubro 6th, 2008 at 11:31
Perfeito cara! Ajudou demais. :D
outubro 17th, 2008 at 15:23
Diogão,
como atribui um valor NULL a uma variavel?
$variavel = NULL; não deu aqui.
novembro 14th, 2008 at 09:58
muito bom, funcionou perfeitamente.
abraço.
dezembro 9th, 2008 at 17:30
Parabéns, muito bom mesmo.
dezembro 13th, 2008 at 14:31
Muito obrigado mesmo, estava com problemas com a função do php, mas acho que no servidor ok, pois no meu apache funcionou perfeitamente e quando upava a página nao funcionava, mas agora com sua ajuda ficou tudo ok?abraços!
dezembro 17th, 2008 at 11:52
Muito obrigada.
Funcionou perfeitamente para o que queria.
Abraço.
dezembro 23rd, 2008 at 03:34
Valeu cara, era exatamente o que precisava para preenchimento correto das minhas fichas de inscrições do Vestibular.
Abraços.
fevereiro 2nd, 2009 at 00:34
Bah, bem certinho. esta fazendo parte da minha coleção de funçoes
março 16th, 2009 at 09:48
Testei o seu código mas a conversão para minúsculas não funcionou.
Gostaria que esclarecesse para mim essa questão.
abril 6th, 2009 at 16:55
Camarada, precisei desta informação e achei aqui. Muito legal esse código. Parabéns!!!
Deus continue te dando sabedoria para postar mais código bacana.
Um abraço.
maio 28th, 2009 at 13:08
Eaiii vlw cara muito bom mesmo a função de grande utilidade.
junho 9th, 2009 at 18:31
mucho bom.
junho 30th, 2009 at 17:56
Cara vc é o cara eu to começando a aprender ajax, com php, com postgresql, html, css, xml, e mais um monte de letrinahs dessa sopa de letrinhas que é nossa profissão rsrsrs
perfeito cara muito obrigado e parabéns mesmo pelo seu conhecimento e por sua boa vontade em ajudar quem tá querendo ganhar dinheiro,dogo, quero dizer aprender rsrsrsrs.
julho 22nd, 2009 at 21:58
Cara, você salvou minha pele na construção de alguns lançamentos contábeis automáticos que estava fazendo, os contadores normalmente não gostam de letras minúsculas nos lançamentos.
Obrigado
agosto 28th, 2009 at 10:34
Gente para passar strings acentuadas para maiuscula é só setar o locale com a função setlocale() do php, da seguinte forma:
setlocale(LC_CTYPE, “ptb”,”BR”);
assim quando vc usar strtoupper() vai funcionar.
ok.
outubro 17th, 2009 at 17:47
Me ajudou muito. Valeu.
novembro 22nd, 2009 at 11:40
VLw kra show de bolaaaa… veio a calhar esse script aew!!!
vlw brother!!
dezembro 23rd, 2009 at 07:40
Javascript e MySql não funciona, mas sua função sim. Muito obrigado.
janeiro 25th, 2010 at 19:04
MT bom. Deu mt jeito. Parabéns
fevereiro 26th, 2010 at 11:22
Ótima solução, resolveu o meu problema.
abril 6th, 2010 at 23:27
Muito bom mesmo cara, me ajudou, parabens!!
Felipe Fulanetto
abril 26th, 2010 at 10:43
Entao continue publicando!
Otimo post!
julho 2nd, 2010 at 16:45
O código é bom, mas você não preve palavras que iniciam com acento. Por exemplo Índio. Vale uma atualização, ai vai ficar redondo! Abraço!
julho 7th, 2010 at 11:33
Muito obrigado.
setembro 3rd, 2010 at 23:42
Estou terminando meu projeto de conclusão de curso agora e o sistema de buscas do projeto funcionava apenas se digitassem a palavra exatamente como estava no banco de dados, com este seu tutorial consegui fazer um sistema de buscas funcional e esperto, muito obrigado!
outubro 4th, 2010 at 13:39
me ajudou vlw mesmo obrigado !!!
novembro 9th, 2010 at 00:53
Thanks for the article. I thought it was awesome.
novembro 19th, 2010 at 19:21
Ivan, funciona com qualquer palavra, sendo o acento no inicio, meio ou fim da palavra.
novembro 19th, 2010 at 19:34
Jose Eduardo, voce sempre registra dominios nacionais no Registro.br. Para dominios internacionais (.com .net .org .. etc.) voce pode utilizar o Brasil Registros.
Os dominios informados ja estao registrado, espero que voce tenha conseguido registrar a tempo. :)
novembro 25th, 2010 at 15:23
Use o LIKE em suas frases SQL
janeiro 19th, 2011 at 10:25
tomei a liberdade e inclui na função a colocação da 1 letra de cada palavra como maiúscula.
function convertem($term, $tp) {
$a1=”àáâãäåæçèéêëìíîïðñòóôõö÷øùüúþÿ”;
$b1=”ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÜÚÞß”;
if ($tp == “1″) $palavra = strtr(strtoupper($term),$a1,$b1);
elseif ($tp == “0″) $palavra = strtr(strtolower($term),$b1,$a1);
elseif ($tp == “2″) $palavra = htmlentities(mb_convert_case($term, MB_CASE_TITLE, “ISO-8859-1″));
//elseif ($tp == “2″) $palavra = ucwords(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).”";
// Exemplo de Utilização – Minúscula 1\letra
$exemplo2 = “NOTÍCIAS ÁULA”;
echo convertem($exemplo2, 2).”";
?>
março 22nd, 2011 at 15:31
junho 15th, 2011 at 01:52
Puta brother, muito bom… quando resolvo pesquisar alguma coisa bem explicada ou ainda melhor, pronta pra se usar nas coisas mais comuns, caio aqui e saio satisfeito, obrigado.
abç
agosto 9th, 2011 at 15:09
Muito obrigado amigo, era exatemente o que eu estava precisando.
Toda vez que eu inseria palavras acentuadas no meu bd, acontecia isso: ÓTIMO ficava óTIMO. Você ajudou muito.
agosto 10th, 2011 at 17:47
O PHP 5 TEM UMA FUNÇÃO QUE JÁ CONVERTE COM A ACENTUAÇÃO:
mb_strtoupper($str);
Olhem mais detalhes no manual do Php.
outubro 1st, 2011 at 10:19
function acento($string,$tamanho){
mb_internal_encoding(“UTF-8″);
if($tamanho == ‘UPPER’) mb_strtoupper($string);
elseif ($tamanho == ‘LOWER’) mb_strtolower($string);
return $string;
}
$exemplo1 = “notícias”;
echo acento($exemplo1, ‘UPPER’) . PHP_EOL;
$exemplo2 = “NOTÍCIAS”;
echo acento($exemplo2, ‘LOWER’) . PHP_EOL;
outubro 24th, 2011 at 12:28
Beleza João! Isso ae, o PHP nas versões mais atuais ja deu a solução para o problema.
outubro 28th, 2011 at 14:08
Olá vlw e mto obrigado pelo post me ajudou mto tinha mais de 5000 registros no banco pensei que iria ter que alterar 1 a 1 rsrsrsrsrs
dezembro 2nd, 2011 at 17:49
Muito obrigado cara me ajudou bastante!!!
janeiro 28th, 2012 at 18:22
Valeu João!! Era justamente o que precisavamos!