<?php
/*Если ты сделал задачу про Grammar Nazi, сделай скрипт, которы вместо сообщения об ошибках будет молча
их исправлять.*/
error_reporting(-1);
mb_internal_encoding('utf-8');

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

$simpleReplace = ['/(к)оординально/ui' => '$1ардинально',      //кардинально
			'/([,;!?:])([^,;!?:\\s]+)/u' => '$1 $2',           //пробелы после знаков препинания
			'/([а-яё]+)\\s+((?:а|но)[^а-яё])/ui' => '$1, $2']; //знаки препинания

foreach ($simpleReplace as $pattern => $replacement){
	$text = preg_replace($pattern, $replacement, $text);
}

$replaces = [
                   ['pattern' => '/(с)десь/ui', 
                    'callback' => function($matches){
                    	if (preg_match('/с/u',$matches[1])){
    		                return 'здесь';
    	                } else {
    		                return 'Здесь';
    	                }
    	             }],
    	           ['pattern' => '/(?:(з)дела)((?:ю|л|н)\\s*)/ui',
    	            'callback' => function ($matches){
                        if (preg_match('/з/u',$matches[1])){
    		                $result = "сдела{$matches[2]}";
    		                return $result;
    	                } else {
    		                $result = "Сдела{$matches[2]}";
    		                return $result;
    	                }
                    }],
                   ['pattern' => '/([а-яё]*(?:ж|ш))(ы)([а-яё]*)/ui',
                    'callback' => function ($matches){
    	                if (preg_match('/ы/u',$matches[2])){
    		                $result = "{$matches[1]}и{$matches[3]}";
    		                return $result;
    	                } else {
    		                $result = "{$matches[1]}И{$matches[3]}";
    		                return $result;
    	                }
                    }]
               ];
foreach ($replaces as $replace){
	$text = preg_replace_callback($replace['pattern'], $replace['callback'], $text);
}

echo $text;