paulomartinhago
5/24/2013 - 2:53 PM

Converter string para primeira letra em maiúsculo e palavras desejadas em minúsculo na mesma string.

Converter string para primeira letra em maiúsculo e palavras desejadas em minúsculo na mesma string.

<?php

function palavras_strtolower($input, $array_palavras = array('da', 'de', 'do', 'dos', 'das'))
{
    //Separar todas as palavras baseadas em espaços
    $array_entrada = explode(' ', strtolower($input));
 
    //Criar o array de saída
    $resultado = array();

    //Definindo áspa
    $aspa = "'";
 
    //Faz-se um loop às palavras, permanecendo as palavras desejadas em minúsculo
    foreach($array_entrada as $palavra)
    {
        if(in_array($palavra, $array_palavras)){
            $resultado[] = $palavra;
        } else {
            if(strstr($palavra, $aspa)){
				list ($palavra1, $palavra2) = split($aspa, $palavra);
	    		$resultado[] = ucfirst($palavra1) . $aspa . substr(ucfirst($palavra2), 0, 1) . substr(mb_strtolower($palavra2), 1);
	    	} else {
        		$resultado[] = substr(ucfirst($palavra), 0, 1) . substr(mb_strtolower($palavra), 1);
        	}

        }
    }
 
    return implode(' ', $resultado);
}