<?php
 
error_reporting(-1);
mb_internal_encoding('utf-8');
 
$text = "ну что.      не смотрел еще black mesa.я собирался скачать  ,но все как-то некогда было.";
// Для тестов
// $text = 'roses are red,and violets are blue.whatever you do i'll keep it for you.';
// $text = 'привет.есть 2 функции,preg_split и explode ,не понимаю,в чем между ними разница.';
 
/* Должно делать первую букву в строке заглавной */
function makeFirstLetterUppercase($sentence) {
	$sentence = preg_split('//u', $sentence, -1, PREG_SPLIT_NO_EMPTY); // разбить предложение на буквы
	$sentence[0] = mb_strtoupper($sentence[0]); //увеличить первую букву
	$sentence = implode("--", $sentence); //склеить предложение из букв, implode пустым не бывает, нужно что-то вставить, иначе код ругается
	$regexp = "/[-][-]/";
	$sentence = preg_replace($regexp, "", $sentence); //заменяем вставку на пустоту
	var_dump($sentence); //по идее, тут всё работает правильно
	return $sentence;
	var_dump($sentence); //а вот здесь - нихуя.
}
 
/* исправляет текст */
function fixText($text) {
	/*вот эта часть исправна*/
	$regexp2 = "/(\\s){2,}/"; //находим лишние пробелы
	$regexp1 = "/(\\s?)([,])(\\s?)/"; //находим запятые
	$text = preg_replace($regexp2, "", $text); //исправляем пробелы
  	$text = preg_replace($regexp1, "$2 ",$text);//исправляем запятые
	
	/*а эта - не очень*/
	$text = explode(".", $text); /* разбить на массив из предложений */
   	foreach ($text as $sentence) { 
 		makeFirstLetterUppercase($sentence); //функция выше
 		var_dump($sentence); //результата нет
 	}
 	$text = implode(". ", $text); //склеить обратно

 
 	return $text;
 }
 
$result = fixText($text);
echo "{$result}\n";