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:

[php]
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.
[/php]

Citeste si:   Ce face functia FLUSH in MYSQL/PHP?

Spune si tu parerea...