WebDev2030
@WebDev2030
Битриксоид до мозга и костей

Как имея две строки найти их различие и подсветить (как в яндексе исправление запроса)?

Есть две строки (поисковый запрос с ошибкой и скорректированный поисковый запрос). Как сравнить и подсветить различия с учётом пробелов, тире и т.д.?
  • Вопрос задан
  • 66 просмотров
Пригласить эксперта
Ответы на вопрос 1
@lolzqq
HTML,CSS,JS,PHP
Разбить по символам на массивы ( str_split($string) ) найти, какая короче ( count($array) ) и сравнить массивы, пробежавшись циклом по более короткому массиву - так найдёте точное различие.
Внутри цикла вывода строк:
  • При выводе страниц при встрече с ячейками, где началось различие - открываете тег <span> с классом, который выделит ваше различие цветом.
  • При встрече с ячейками, где различие продолжается - просто их и выводите.
  • При встрече с ячейками, где различие прекратилось - сперва закрываете тег </span>
  • Если далее различий не обнаруживается - выводите ячейки без закрывающего тега </span>
  • Остаток более длинного массива автоматически выделяете <span>-ом различия


А ещё есть измерение расстояния Левенштейна (степень похожести строк): https://www.php.net/manual/ru/function.levenshtein.php - может оно вам нужнее окажется, чем предыдущая писанина.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы