xml_nomes = new DOMDocument(); $this->xml_nomes->load("inc/names.xml");// Carrega o xml antes de iniciar os nomes. } function generate_login($primeiro_nome,$segundo_nome,$conexao_ldap) { $primeiro_nome_exp = explode("#",$this->formata_frase(strtolower($primeiro_nome))); $segundo_nome_exp = explode("#",$this->formata_frase(strtolower($segundo_nome))); $login = ""; //Tratar primeiro nome... $login.=$primeiro_nome_exp[0]; //A primeira parte do primeiro nome é sempre inserida if(count($primeiro_nome_exp)>1) { //Se houver mais partes... if ( ($this->is_nome_comum($primeiro_nome_exp[0])) && (!$this->is_preposicao($primeiro_nome_exp[1]))) { //Se a primeira parte do nome for comum e a segunda NÃO for uma preposição... $login.=$primeiro_nome_exp[1]; } } //"." separa o primeiro do segundo nome $login.="."; //Tratar segundo nome... if( (!$this->is_sobrenome_especial($segundo_nome_exp[count($segundo_nome_exp)-1])) || (count($segundo_nome_exp)==1) ) $login.=$segundo_nome_exp[count($segundo_nome_exp)-1]; else { $login.=$segundo_nome_exp[count($segundo_nome_exp)-2]. $segundo_nome_exp[count($segundo_nome_exp)-1]; } return $login; } private function is_nome_comum($nome) { $nomes = $this->xml_nomes->getElementsByTagName("nomes"); foreach($nomes as $node) { if($node->getAttribute("tipo") == "nome") { foreach($node->getElementsByTagName("nome") as $subnode) { if($subnode->nodeValue == $nome) return true; } } } return false; } private function is_preposicao($preposicao) { $nomes = $this->xml_nomes->getElementsByTagName("nomes"); foreach($nomes as $node) { if($node->getAttribute("tipo") == "preposicao") { foreach($node->getElementsByTagName("nome") as $subnode) { if($subnode->nodeValue == $preposicao) return true; } } } return false; } private function is_sobrenome_especial($sobrenome) { $nomes = $this->xml_nomes->getElementsByTagName("nomes"); foreach($nomes as $node) { if($node->getAttribute("tipo") == "sobrenome") { foreach($node->getElementsByTagName("nome") as $subnode) { if($subnode->nodeValue == $sobrenome) return true; } } } return false; } /*private function set_nomes_comuns() { $nomes_comuns = array(); array_push($nomes_comuns,"maria","joao","ana","anna","jose","antonio", "luis","luiz","luisa","luciano","luciana","tania","carlos", "marco","vera"); return $nomes_comuns; } private function set_preposicoes() { $preposicoes = array(); array_push($preposicoes,"do", "da","de","dos","das","e"); return $preposicoes; } private function set_sobrenomes_especiais() { $sobrenomes = array(); array_push($sobrenomes,"junior","filho","filha","neto","netto","sobrinho","sobrinha"); return $sobrenomes; }*/ //Retira acentos e caracteres especiais, e substitui espaço em branco pelo caracter #. private function formata_frase($frase) { $frase = ereg_replace("[^a-zA-Z0-9#.]", "", strtr($frase, "áàãâéêíóôõúüçÁÀÃÂÉÊÍÓÔÕÚÜÇ ", "aaaaeeiooouucAAAAEEIOOOUUC#")); return $frase; } } ?>