Замена синонимов по шаблону PHP

118
01 декабря 2019, 03:20

Есть ряд синонимов, которые заменяются на нужные словоформы:

<?php
$sostav_result = "камень";
$sostav_result = "бурый камень дробленый";
$sostav_result = mb_strtolower($sostav_result);
//Словарь
$sostav_result = preg_replace('/\bкамень\b/u', "камень бурый", $sostav_result);
$sostav_result = preg_replace('/\bбурый камень дробленый\b/u', "камень бурый", $sostav_result);
echo $sostav_result;

Ожидаемый результат: камень бурый

Получаемый результат: бурый камень бурый дробленый

Логические ошибки понятны. Но не понятно пока, как решить задачу: не менять отдельные слова из фразы.

Живой пример: http://sandbox.onlinephpfunctions.com/code/799bccffaee5e4a367eea7fa0cd9f693eed7d9ca

Answer 1

Поменяйте местами порядок замены синонимов. Сначала, более частные случаи замены "бурый камень дробленый" меняете на тэг1, привязанный к первому случаю, потом уже более общие "" меняете на тэг2, привязанный ко второму случаю (если они попадутся). Потом меняете теги на необходимые слова-замены.

READ ALSO
Почему разная длина пароля?

Почему разная длина пароля?

Формирую пароль:

140
Как передать сумму из калькулятора в письмо формы?

Как передать сумму из калькулятора в письмо формы?

Есть форма с инпутамиЭто калькулятор

141
PHP Разместить изображения на A4

PHP Разместить изображения на A4

Есть изображения одного размера вpng Как можно по средствам PHP реализовать размещение этих изображений на нескольких A4?

97
Как разместить гео объекты на карте?

Как разместить гео объекты на карте?

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

101