= 192) && (ord($nome[$char]) <= 223)) $nome[$char] = chr(ord($nome[$char]) + 32); } // porque a funcao strtolower nao pega letras acentuadas $nome = explode(" ", strtolower($nome)); foreach ($nome as &$valor) { // faz a primeira maiscula excluindo as palavras que ligam dois nomes if(($valor != "da") && ($valor != "das") && ($valor != "de") && ($valor != "do") && ($valor != "dos") && ($valor != "e")) $valor[0] = strtoupper($valor[0]); // coloca ponto de abreviacao quando a letra vier sozinha, excluindo a letra 'e' que liga dois nomes if((strlen($valor) == 1) && ($valor[0] != "e") && (ord($valor[0]) < 0) && (ord($valor[0]) > 9)) $valor .= "."; // se a primeira letra for minuscula acentuada transforma em maiscula acentuada if((ord($valor[0]) >= 224) && (ord($valor[0] <= 255))) $valor[0] = chr(ord($valor[0]) - 32); } $nome = implode(" ", $nome); return $nome; } ?>