Blog corporativo
Artigos, scripts e dicas postados pelos colaboradores. Não são postados scritps relacionados à trabalhos feitos para clientes.
Artigos, scripts e dicas postados pelos colaboradores. Não são postados scritps relacionados à trabalhos feitos para clientes.
Como todos devem saber o PHP depende muito do modo como o servidor é configurado. Boa parte dos servidores que usamos estão em outros países e por via de regra, temos alguns problemas quando trabalhos com conversão de caracteres de minúsculo para maiúsculo e vice-versa.
Esse problema se deve as configurações do servidor, que podem não estar setadas para pt_BR/portuguese, nesse caso tendo problemas principalmente com letras acentuadas, nesse caso você tem duas opções basicamente:
1 - Usar Funções Multibyte String, essa solução é perfeita, mas tem limitações, imagine que você deseja converter: "ÓLEO, ATENÇÃO" para "Óleo, atenção", se você usar strtolower e depois ucfirst, nosso exemplo vai se transformar em "Óleo, atenÇÃo", você pode substituir strtolower por mb_strtolower, nesse caso será impresso: "óleo, atenção", não existe 'substituto' para ucfirst, nesse caso você ficaria de mãos amarradas e teria que ir para a segunda opção;
2 - Usar o setlocale, como o que nos interessa é apenas a parte de alfabeto, nos interessa o LC_CTYPE, para resolver o problema que foi posto acima bastaria:
setlocale(LC_CTYPE,pt_BR);
setlocale(LC_ALL,pt_BR);