/**
  * Ajusta as palavras para por acentos
  *
  * @param string $palavra Palavra a ser modificada
  * @return string Palavra com acento
  * @access public
  */
 public function acentos($palavra)
 {
     $espacamentos = array(' ', '_');
     foreach ($espacamentos as $espacamento) {
         if (strpos($palavra, $espacamento) !== false) {
             $palavra = explode($espacamento, $palavra);
             $saida = '';
             foreach ($palavra as $pedaco) {
                 $saida .= Inflexao::acentos($pedaco) . $espacamento;
             }
             return rtrim($saida, $espacamento);
         }
     }
     if (preg_match('/(.*)cao$/', $palavra, $matches)) {
         return $matches[1] . 'ção';
     }
     if (preg_match('/(.*)ao(s)?$/', $palavra, $matches)) {
         return $matches[1] . 'ão' . (isset($matches[2]) ? $matches[2] : '');
     }
     if (preg_match('/(.*)coes$/', $palavra, $matches)) {
         return $matches[1] . 'ções';
     }
     if (preg_match('/(.*)oes$/', $palavra, $matches)) {
         return $matches[1] . 'ões';
     }
     if (preg_match('/(.*)aes$/', $palavra, $matches)) {
         return $matches[1] . 'ães';
     }
     return $palavra;
 }
Пример #2
0
 function testAcentos()
 {
     $this->assertEqual('caminhão', Inflexao::acentos('caminhao'));
     $this->assertEqual('Pão', Inflexao::acentos('Pao'));
     $this->assertEqual('canção', Inflexao::acentos('cancao'));
     $this->assertEqual('canções', Inflexao::acentos('cancoes'));
     $this->assertEqual('limões', Inflexao::acentos('limoes'));
     $this->assertEqual('mães', Inflexao::acentos('maes'));
     $this->assertEqual('joão do caminhão', Inflexao::acentos('joao do caminhao'));
     $this->assertEqual('joão_do_caminhão', Inflexao::acentos('joao_do_caminhao'));
 }