Recent a trebuit sa fac un script care trebuie sa descopere prima litera dintr-o propozitie si sa o faca mare. Problema a intervenit atunci cand am descoperit ca mai multe descrieri dintr-o baza de date avea cuvinte cu caractere mari in mijlocul propozitie.

Solutia e mai jos:

function my_ucfirst($string, $e ='utf-8') {
	if (function_exists('mb_strtoupper') && function_exists('mb_substr') && !empty($string)) {
		$string = mb_strtolower($string, $e);
		$upper = mb_strtoupper($string, $e);
		preg_match('#(.)#us', $upper, $matches);
		$string = $matches[1] . mb_substr($string, 1, mb_strlen($string, $e), $e);
	}
	else {
		$string = ucfirst($string);
	}
	return $string;
}
function sentence_case($string) { 
    $sentences = preg_split('/([.?!]+)/', $string, -1, PREG_SPLIT_NO_EMPTY|PREG_SPLIT_DELIM_CAPTURE); 
    $new_string = ''; 
    foreach ($sentences as $key => $sentence) { 
        $new_string .= ($key & 1) == 0? 
            my_ucfirst(strtolower(trim($sentence))) : 
            $sentence.' ';  
    } 
    return trim($new_string); 
}
$descriere ="acesta este scris ceva. inca o propozitie"; 
echo sentence_case($descriere); // afiseaza corect datele.

Citeste si:   Cum sa faci un print screen in Windows

Spune si tu parerea...