PHP нечувствительный заменить

Я пытаюсь заменить строку без учета чувствительности, поэтому я использую str_ireplace(), но она делает то, что мне не нужно, и я понятия не имею, как решить эту проблему.

так что это мой код:

$q = "pArty";
$str = "PARty all day long";
echo str_ireplace($q,'<b>' . $q . '</b>',$str);

Вывод будет таким: "<b>pArty</b> all day long", Вывод выглядит так, потому что я заменяю нечувствительную переменную $q с его чувствительным.

Как я могу преодолеть это, чтобы результат был "<b>PARty</b> all day long"?

2 ответа

Решение

Вы могли бы сделать это с preg_replaceНапример:

$q = preg_quote($q, '/'); // in case it has characters of significance to PCRE
echo preg_replace('/' . $q . '/i', '<b>$0</b>', $str);

Это потому, что вы просите заменить " P A R t y" на "p A r t y". Как приказано, php подчинился. Однако почему вы вообще хотите что-то заменить? Оригинал - это то слово, которое вам нужно.

Другие вопросы по тегам