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