<?php
error_reporting(-1);
$text = <<<EOF
Нет пробела после запятой,либо после точки с запятой;а иногда и даже после таких знаков:восклицательного!И даже вопросительного.Найдет ли мой скрипт такую ошибку?Посмотрим.
"Жи" и "ши" мы пишем с буквой "и" в словах "шына", "жывотное" и др.
В тексте есть слово "координально", "сдесь", "зделол", "зделан" а также "зделою" но нет слова "чюдо" и "щюка".
EOF
;
//$regexp = '/(\b[а-яё]+),([а-яё]+\b)|(\b[а-яё]+);([а-яё]+\b)|(\b[а-яё]+)!([а-яё]+\b)|(\b[а-яё]+)\\.([а-яё]+\b)|(\b[а-яё]+)\\?([а-яё]+\b)/ui';
//$regexp = '/\bз(д[а-яё]+)\b/ui';
//$regexp = '/[а-яё]*(жы|шы)[а-яё]*/ui';
$regexp = '/[а-яё]*((чю)|(щю))[а-яё]*/ui';
$text = checking($text, $regexp, 4);
//$regexp = '/сдесь/ui';
//$text = checking($text, $regexp, 5);
//$regexp = '/координал[а-яё]+/ui';
//$text = checking($text, $regexp, 6);
echo $text;
function checking($text, $regexp, $type){
$error = false;
$matches = array();
$count = preg_match_all($regexp, $text, $matches);
foreach ($matches[0] as $element){
echo "В тексте найдена ошибка: {$element}\n";
$error = true;
echo "$count\n";
var_dump($matches);
}
if ($error == true){
$text = fixError($text, $regexp, $type);
return $text;
}
}
function fixError($text, $regexp, $type){
if ($type == 5){
$text = preg_replace($regexp, 'здесь', $text);
}else if($type == 6){
$text = preg_replace($regexp, 'кардинально', $text);
}
return $text;
}