Jump to content


Photo

Nomeestado


  • Faça o login para participar
Nenhuma resposta neste tópico

#1 lwirkk

lwirkk

    Veterano

  • Usuários
  • 1314 posts
  • Sexo:Não informado

Posted 22/06/2010, 12:50

Sintaxe: NomeEstado( [ string $estado ] )
Retorno: String, Boolean[FALSE]
Descrição: Passe a sigla do estado para retornar seu nome completo ou passe o nome para retornar sua sigla. Caso nada seja encontrado retorna Boolean FALSE.
Bibliotecas: Nenhuma
Limitações: PHP 4.0+

Função:
function NomeEstado($estado = ''){
	$estados = array('Acre'=>'AC','Alagoas'=>'AL','Amapá'=>'AP','Amazonas'=>'AM','Bahia'=>'BA','Ceará'=>'CE','Distrito Federal'=>'DF','Espírito Santo'=>'ES','Goiás'=>'GO','Maranhão'=>'MA','Mato Grosso'=>'MT','Mato Grosso do Sul'=>'MS','Minas Gerais'=>'MG','Pará'=>'PA','Paraíba'=>'PB','Paraná'=>'PR','Pernambuco'=>'PE','Piauí'=>'PI','Rio de Janeiro'=>'RJ','Rio Grande do Norte'=>'RN','Rio Grande do Sul'=>'RS','Rondônia'=>'RO','Roraima'=>'RR','Santa Catarina'=>'SC','São Paulo'=>'SP','Sergipe'=>'SE','Tocantins'=>'TO');
	$from = 'ÀÁÃÂÉÊÍÓÕÔÚÜÇàáãâéêíóõôúüç';
	$to = 'AAAAEEIOOOUUCaaaaeeiooouuc';
	if( strlen($estado) > 0 ){
		if( strlen($estado) == 2 ){
			return array_search(strtoupper($estado),$estados);
		}elseif( strlen($estado) > 2 ){
			$estado = explode(' ',$estado);
			$palavras_nova = '';
			foreach( $estado as $palavras ){
				if( $palavras != 'de' && $palavras != 'do' ){
					$palavras_nova .= ucwords(strtolower($palavras)).' ';
				}else{
					$palavras_nova .= $palavras.' ';
				}
			}
			$estado = trim($palavras_nova);
			if( array_key_exists($estado,$estados) ){
				return $estados[$estado];
			}else{
				foreach( $estados as $nome=>$sigla ){
					if( strtr($nome,$from,$to) == $estado ){
						$enc = $sigla;
						break 1;
					}
				}
				if( $enc ){
					return $enc;
				}else{
					return FALSE;
				}
			}
		}else{
			return FALSE;
		}
	}else{
		return FALSE;
	}
}

Exemplo de utilização:

<?php
echo NomeEstado('mg'); // Minas Gerais
echo NomeEstado('minas gerais'); // MG

// Caracteres maiúsculos ou minúsculos, pode ser passado da forma que desejar, limitando a escrita correta do nome do estado ou sigla.
?>

=)

Edição feita por: lwirkk, 22/06/2010, 12:51.

Posted Image
"Se quiser ser feliz por um dia, vingue-se; se quiser ser feliz por uma vida inteira, perdoe."

Muito Obrigado à todos do fórum, e à toda equipe do fórum! =)




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq