quinta-feira, 17 de março de 2011

Problema função strtoupper PHP

Como todos sabem a função strtoupper é responsável para deixar todos os caracteres da STRING maiúsculo. Esta função esta adaptada para CHARSET UTF-8 (padrão inglês). O problema é quando surge alguns caracteres específicos do nosso idioma, por exemplo: ç, ã, á etc...

O jeito é recorrer para uma função adaptando estes caracteres via str_replace().

Solução:

function converteMaiusculo($string)
{
$string = strtoupper ($string);
$string = str_replace ("â", "Â", $string);
$string = str_replace ("á", "Á", $string);
$string = str_replace ("ã", "Ã", $string);
$string = str_replace ("à", "A", $string);
$string = str_replace ("ê", "Ê", $string);
$string = str_replace ("é", "É", $string);
$string = str_replace ("Î", "I", $string);
$string = str_replace ("í", "Í", $string);
$string = str_replace ("ó", "Ó", $string);
$string = str_replace ("õ", "Õ", $string);
$string = str_replace ("ô", "Ô", $string);
$string = str_replace ("ú", "Ú", $string);
$string = str_replace ("Û", "U", $string);
$string = str_replace ("ç", "Ç", $string);
return $string;
}

4 comentários:

  1. Não precisa fazer essa parada aí...

    É só você usar mb_strtotupper($string, 'UTF-8')

    ResponderExcluir
  2. setlocale(LC_CTYPE, 'C'); // 'ptb', 'enu', 'ita', 'fra', 'esp' C = padrão PHP para strtoupper()

    ResponderExcluir
  3. Existem inúmeras maneiras de fazer isso. rs.
    Mas obrigado.

    ResponderExcluir