Я пытаюсь сделать первую букву каждого предложения заглавной, сохраняя знаки препинания. Я попытался 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?!"
Попробуй это:
function ucfirstSentence($str){
$str = ucfirst(strtolower($str));
$str = preg_replace_callback('/([.!?])\s*(\w)/',
create_function('$matches', 'return strtoupper($matches[0]);'), $str);
return $str;
}
Других решений пока нет …