У меня есть следующие строки.
$string = "Welcome to Lorien.";
$search = "welcome";
Теперь я хочу искать $search в $string и игнорировать регистр, поэтому:
$result = str_ireplace($search, '<b>'.$search.'</b>' ,$string);
$result должно выглядеть так: Добро пожаловать Лориен.
Есть ли способ, которым я могу использовать случай $string, чтобы он выглядел так: Добро пожаловать для Лориен.
Как получить часть строки, которая заменяется, и использовать ее?
Вместо этого используйте preg_replace.






Вы можете использовать preg_replace() для этого:
$string = "Welcome to Lorien.";
$search = "welcome";
$result = preg_replace("/{$search}/i", '<b>$0</b>', $string);
/i делает совпадение нечувствительным к регистру.$0 будет заменен соответствующей строкой из исходной строки, поэтому регистр всегда будет правильным.Демо: https://3v4l.org/vN9Km
Op хочет найти строку с заданным шаблоном, как без учета регистра, так и в верхнем регистре и жирным шрифтом, если я правильно понял.
Если это так, вот что нужно сделать.
<?php
$string = "Welcome to Lorien.";
$search = "welcome";
echo str_ireplace($search, '<b>'.ucwords($search).'</b>', $string);
// Outputs: <b>Welcome</b> to Lorien.
Пример: https://3v4l.org/Gmsqp
ваш ожидаемый результат точно такой же, как и ввод, который вы предоставили. Так что я смущен, что вы пытаетесь сделать?