Простой способ - использовать strtolower , чтобы сделать строку строчной буквой, и ucfirst , чтобы прописать первый символ следующим образом:
$str=ucfirst(strtolower($str));
Если строка содержит несколько предложений, вам придется написать собственный алгоритм, например, разбить на разделители предложений и обработать каждое предложение по очереди. Как и первый символ, вам могут потребоваться некоторые эвристики для таких слов, как «я» и любых обычных имен собственных, которые встречаются в вашем тексте. Например, как-то так:
$sentences=explode('.', strtolower($str));
$str="";
$sep="";
foreach ($sentences as $sentence)
{
//upper case first char
$sentence=ucfirst(trim($sentence));
//now we do more heuristics, like turn i and i'm into I and I'm
$sentence=preg_replace('/i([\s\'])/', 'I$1', $sentence);
//append sentence to output
$str=$sep.$str;
$sep=". ";
}