Как вычислить латинские буквы в тексте и выделить их?

FRIE

Новичок
Есть стоки текста на русском языке, но в словах могут встречаться английские буквы-близнецы. Их нужно вычислить и выделить красным цветом.

Как тут поправить чтобы он при нахождении добавлял span к найденной букве:?
function detecteng($text){
$lat_str = "ABVGDEZIJKLMNOPRSTUFHabvgdezijklmnoprstufh";
$str = strtr($text,$lat_str,"<span style='color:#dc3912;'>".$lat_str."</span>");
return($str);
}
 

Linker

Новичок
Напомнило:





в общем, китайская версия азбуки...

Но к китайцам вопросов нет. Для них русский язык не родной, им простительно так экспериментировать с сознанием.
А вот что вы хотели сказать своим вопросом, лично я даже стесняюсь предположить.

Картина у меня такая получается:
у вас появляются некоторым образом "латинско-английские" буквы, которые "близнецы"
Интересно, они близнецы именно потому, что английские это и есть латинские? Или они похожи на кириллицу, например "А", "В", "С" и т.д.? Но дальше вы разрываете мозг вот этой вот строкой:
$lat_str = "ABVGDEZIJKLMNOPRSTUFHabvgdezijklmnoprstufh";

Так что теперь я практически уверен, что азбуку придумали не китайцы вовсе, а кто-то вроде вас им эскизы делал, а они просто кубики уже из папье-маше слепили.
 

FRIE

Новичок
)))
У меня небольшой текстовый анализатор, в котором в одной из функций является показ уникальных слов, а так как попадаются слова в которых некоторые русские буквы написаны латиницей например C или A, то уникализация не проходит и 2 свиду одинаковых слова показываются в результате.
Я хочу выделить визуально латинские буквы красным цветом, чтобы понимать где трэш.
Над кодом сам ржал )
 

Linker

Новичок
PHP:
$str = preg_replace('/[AaBCcEeHKkMmnOoPpTXx]/', '<span style="color: #dc3912">$0</span>', $text, -1, $count);
 
          if ($count) { $str .= '<br>найдено символов: '.$count; }
          else { $str .= '<br>Символы латиницы похожие на символы кириллицы не найдены...'; }
Или, если как у вас в первом сообщении, то как-то так, наверное:
PHP:
$Werewolfs = array(
'A' => '<span style="color: #dc3912">A</span>',
'a' => '<span style="color: #dc3912">a</span>',
'B' => '<span style="color: #dc3912">B</span>',
'C' => '<span style="color: #dc3912">C</span>',
'c' => '<span style="color: #dc3912">c</span>',
'E' => '<span style="color: #dc3912">E</span>',
'e' => '<span style="color: #dc3912">e</span>',
'H' => '<span style="color: #dc3912">H</span>',
'K' => '<span style="color: #dc3912">K</span>',
'k' => '<span style="color: #dc3912">k</span>',
'M' => '<span style="color: #dc3912">M</span>',
'm' => '<span style="color: #dc3912">m</span>',
'n' => '<span style="color: #dc3912">n</span>',
'O' => '<span style="color: #dc3912">O</span>',
'o' => '<span style="color: #dc3912">o</span>',
'P' => '<span style="color: #dc3912">P</span>',
'p' => '<span style="color: #dc3912">p</span>',
'T' => '<span style="color: #dc3912">T</span>',
'X' => '<span style="color: #dc3912">X</span>',
'x' =>'<span style="color: #dc3912">x</span>'
);
 
$str = strtr($text, $Werewolfs);
 
Последнее редактирование:

Linker

Новичок
Absinthe, видимо намёк на юникод? У меня даже без модификатора, в первом примере всё нормально.
strtr() - как раз пример из комментариев по utf8 на php.net
Надо бы пример конкретный посмотреть? Я как-то даже не парился, мы ведь латинские символы искали?
 

Linker

Новичок
Эпический балет! FRIE!
Это не переменная, это ссылка для функции на найденное вхождение.
Я даже готов побиться об заклад, что вы не знаете, что можно в строке вашего браузера вот так вот набрать:
http://php.net/preg_replace
причём так можно любую функцию посмотреть
 
Сверху