Intereting Posts
Как получить целочисленный вывод из SQL-запроса Ошибка API Vimeo 708 Отправлять данные в базу данных при нажатии ссылки без обновления страницы. Игла в стоге сена с массивом в PHP Почему _GET в PHP неправильно декодирует косую черту? Php mysqi bind_param Число переменных не соответствует количеству параметров в подготовленном операторе Codeigniter – SEO-URL-структура URL-адресов (реализация слизней) PHP myAdmin – Изменить порядок полей (перемещение вверх или вниз) Отправить письмо по электронной почте в Codeignign с помощью Gmail «Использование неопределенного постоянного» уведомления, но константа должна быть определена Простой HTML DOM str_replace в текстовом виде Извлечь URL из строки с помощью PHP Laravel & Artisan дает французские ошибки Разрешение только определенных символов в PHP Исключения PHP, обработанные обработчиком ошибок, не попадают в обработчик исключений

Разница строк php

Я хочу создать метод, который сравнивает два предложения и возвращает слова, которые делают их разными.

например

серые плитки 100 X 200 кухонный пол

серые плитки 300 X 600 кухонный пол

разница составляет 100 x 200 300 x 600

это позволит одному слову (не обязательно, чтобы один персонаж сидел между двумя уникальными словами), хотя, если расстояние превышает один, оно будет вызывать ошибку, говоря, что фразы не являются достаточно похожими, разница может быть найдена в начале / конце / середине текст

после перехода в разные блоги, я нашел аналогичный подход к моей проблеме, используя встроенную функцию php xdiff_string_diff, но проблема в том, что я не могу заставить код работать. Я получил ошибку, говоря, что xdiff_string_diff – неопределенная функция. Кто-нибудь из вас знает, какие расширения должны быть загружены, чтобы сделать эту функцию доступной? Или, если вы можете предложить другой подход, это будет здорово и высоко оценено. 🙂

<?php $old_article = "grey tiles 100 X 200 kitchen flooring"; $new_article = "grey tiles 300 X 600 kitchen flooring" $diff = xdiff_string_diff($old_article, $new_article, 1); if (is_string($diff)) { echo "Differences between two articles:\n"; echo $diff; } ?> 

Related of "Разница строк php"

Вам нужно будет установить xdiff

 pecl install xdiff 

В качестве альтернативы вы можете попробовать использовать array_diff, чтобы найти различия между строками. Разверните их в пространстве, а затем array_diff их:

 $a1 = explode(" " , 'grey tiles 100 X 200 kitchen flooring'); $a2 = explode(" ", 'grey tiles 300 X 600 kitchen flooring'); echo join(' ', array_diff($a1, $a2)); // 100 200 

Это не поймает X, хотя, поскольку X будет общей частью строки в этом контексте.

На каждой странице руководства каждой функции (или библиотеки) всегда упоминается, поставляется ли она по умолчанию по умолчанию или нет, и из какой версии PHP они начали упаковывать ее в выпуск.

Если это не в выпуске, то упоминается пакет, в котором он находится (либо PECL, либо PEAR).

O на странице его руководства говорится:

 PECL xdiff >= 0.2.0 

Если вы используете BSD / Solaris / Linux / Mac, все, что вам нужно сделать, это открыть консоль и ввести:

 pear install xdiff 

Вы можете сравнивать каждого персонажа один за другим, в каждой разнице вы можете увеличить счетчик на единицу. Но это решение не даст вам «300», это даст вам 3.