<?php
/*Напиши скрипт, проверяющий текст на наличие злостных ошибок:
нет пробела после запятой, точки с запятой, восклицательного знака, вопросительного знака, двоеточия
«жи» или «ши» написано с буквой ы
в тексте есть слово «координально» или «сдесь», «зделал», «зделаю», «зделан»
в тексте есть слова «а» или «но» без запятой перед ними.
(можешь добавить еще несколько правил, если хорошо знаешь русский язык)
В случае обнаружения ошибки скрипт должен писать сообщение об этом и выводить кусок текста с ошибкой 
(чтобы было понятно, что не так).*/

$text = "Привет,шыр!труд:Жыр?пассаЖЫР;зделаю Координально но, например сдесь решена проблема ушыбов.
		Зделано многое а? ведь это зделал я Один ананас,   но зато какой";

$rules = [
	['regexp' => '/[,;!?:][^,;!?:\\s]+/u', 'comment' => 'отсутствие пробелов'],
	['regexp' => '/[а-яё]*(?:ж|ш)ы[а-яё]*/ui', 'comment' => 'написание жи-ши'],
	['regexp' => '/координально|сдесь|здела(?:л|ю|н)\\S*/ui', 'comment' => 'орфографические'],
	['regexp' => '/[а-яё]+\\s+(?:а|но)[^а-яё]/ui', 'comment' => 'пунктуация']
];

foreach ($rules as $rule){
	
	$matches = array();
	$count = preg_match_all($rule['regexp'], $text, $matches);
	if ($count){
		echo "Нашлись ошибки ({$rule['comment']}) {$count} шт :\n";
		foreach ($matches[0] as $mistake){
			echo "{$mistake}\t";
		};
		echo "\n";
	} else {
		echo "Ошибки ({$rule['comment']}) отсутствуют\n";
	}
}
?>