Создание первой буквы каждого предложения в верхнем регистре с помощью ucfirst

Я пытаюсь сделать первую букву каждого предложения заглавной, сохраняя знаки препинания. Я попытался ucfirst, но он делает только первую букву строки в верхнем регистре, а не любые другие предложения. Как это исправить?

$text = "yes. are you listening to me? huh?!"$text = ucfirst($text);

echo $text;

Ожидаемый результат:

Yes. Are you listening to me? Huh?!"

Фактический выход:

Yes. are you listening to me? huh?!"

0

Решение

Попробуй это:

function ucfirstSentence($str){
$str = ucfirst(strtolower($str));
$str = preg_replace_callback('/([.!?])\s*(\w)/',
create_function('$matches', 'return strtoupper($matches[0]);'), $str);
return $str;
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]