Заменить фразу по слову

144
07 декабря 2020, 21:30

Данная конструкция заменяет лишь одно слово из фразы:

$istok = "шерсть яка";
$vivod = preg_replace('/\bяк(а)\b/iu', 'як', $istok);
echo $vivod;

(здесь результат будет: "шерсть як")

пример: http://sandbox.onlinephpfunctions.com/code/fbf737865909307ff082811655e90e72cc2e4035

Задача: заменить фразу целиком на нужное слово, т.е. на выходе, вместо фразы "шерсть яка" получить "як".

Как этого добиться?

Answer 1

Набросал пример на коленке

$istok = "шерсть яка";
$vivod = preg_replace('/.*\b(як)\b.*/iu', '$1', $istok);
echo $vivod;
Answer 2

Работает только с указанными словами. В противном случае возвращает фразу без изменений.

$array = [
    "яка" => "як",
    "альпаки" => "альпака",
];
$istok = "шерсть альпаки";
$vivod = preg_replace('/.* ([^ ]*)/iu', '$1', $istok);
if (isset($array[$vivod])) {
  $vivod = $array[$vivod];
} else {
    $vivod=$istok;
}
echo $vivod;
READ ALSO
jdbc + mysql + русские буквы

jdbc + mysql + русские буквы

Подобный вопрос уже задавался, но пролистав множество ссылок, ответ так и не был найденБаза MySql имеет кодировку utf8, при добавлении в базу через...

144
mutable/immutable объекты [закрыт]

mutable/immutable объекты [закрыт]

Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы он был сосредоточен только на одной проблеме

116
Обновлять время и прибавлять часы и минуты

Обновлять время и прибавлять часы и минуты

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

116
В каком формате объект записываются в файл?

В каком формате объект записываются в файл?

Вот информация записанная в файл Как понять этот формат?

148