segunda-feira, 12 de dezembro de 2011

Função PHP para iniciais maiúsculas (CAPITALIZE)

Bom dia a todos,

Iniciei uma nova caminhada, agora estou estudando também PHP e pesquisando na internet sobre uma função para realizar um CAPITALIZE em frases descobri que o PHP não tem ainda nativo. Com um pouco mais de pesquisa encontrei a função abaixo que funcionou muito bem e pode ser útil para vocês.
Ela levam em consideração nosso idioma desconsiderando os verbetes: um, uma, o, a, de, do, da, em.


Chega de enrolação, vamos a função:


 <?php  
 function strCapital($str)  
   {  
     $noUp = array('um','uma','o','a','de','do','da','em');  
     $str = trim($str);  
     $str = strtoupper($str[0]) . strtolower(substr($str, 1));  
     for($i=1; $i<strlen($str)-1; ++$i) {  
       if($str[$i]==' ') {  
         for($j=$i+1; $j<strlen($str) && $str[$j]!=' '; ++$j); //find next space  
         $size = $j-$i-1;  
         $shortWord = false;  
         if($size<=3) {  
           $theWord = substr($str,$i+1,$size);  
           for($j=0; $j<count($noUp) && !$shortWord; ++$j)  
             if($theWord==$noUp[$j])  
               $shortWord = true;  
         }  
         if( !$shortWord )  
           $str = substr($str, 0, $i+1) . strtoupper($str[$i+1]) . substr($str, $i+2);  
       }    
       $i+=$size;  
     }  
     return $str;  
   }  
 ?>  

Nenhum comentário:

Postar um comentário