<?php
error_reporting(-1);
mb_internal_encoding('utf-8');

$text = 'Пожалуйста,никогда';
$arrayOfRegexps = array(
	'/\S+(,|\.|;|:|\\?|!)[а-Я]+/ui' => "После точки, запятой, двоеточия, точки с запятой, восклицательного и вопросительного знаков нужно ставить пробел.",
	'/(И|и)ме(л(а|о|и)?|е(те?|шь|м)|ю(т|щ(ий|ая))?|й(те)?|ть)\sввиду/ui' => "«Ввиду» пишется слитно тогда, когда его можно заменить предлогом «из-за».",
	'/\S+(\.|\\?|!)(\s)?[а-я]+/ui' => "Предложение должно начинаться с большой буквы.",
	'/\S*(ж|ш)ы\S*/ui' => "«жи» «ши» пиши с «и».",
	'/(что|чуть|вряд)-?ли/ui' => "Частица «ли» всегда отделяется пробелом.",
	'/[^,]\s(а|но)\s\S*/ui' => "Перед союзами «а» и «но» нужно ставить запятую.",
	'/\sздел\S+/ui' => "Приставки «з» не существует.",
	'/\sлож(и(ть|л(и|а)?)?|ат)(\s|\.)/ui' => "Такого слова не существует, есть слово «класть»",
);

$matches = array();
$errorsCounter = 0;

foreach ($arrayOfRegexps as $regexp => $errorDescription)
{
	$errorsCounter += preg_match_all($regexp, $text, $matches);

	foreach ($matches[0] as $value) 
	{
		echo "\nЗдесь ошибка: " . $value . "\nОписание: " . $errorDescription . "\n";
	}
}

echo "\nВсего найдено ошибок: {$errorsCounter}\n";
