Нужно отфильтровать строку PHP
Нужно с помощью regexp сделать так, что 1) были только русские и английские буквы, цифры, пробелы и знаки !#$&() 2) не было английских букв рядом с русскими(при нахождении русская буква заменяется "#"
function filter($str){
$pattern = '/[^a-zA-Z\d а-яёА-ЯЁ]/';
$replacement = '';
$str=preg_replace($pattern, $replacement, $str);
$replacement = '\1#';
$pattern = '/([a-zA-Z])([а-яёА-ЯЁ])/';
$str=preg_replace($pattern, $replacement, $str);
$pattern = '/([^а-яёА-ЯЁ])([a-zA-Z])/';
$replacement = '#\2';
$str=preg_replace($pattern, $replacement, $str);
return $str;
}