Как использовать str_replace без изменения заглавных букв?

Это для скрипта поиска по сайту. Если я использую str_ireplace, это изменит капитализацию результатов поиска. Например, если строка запроса - "строка поиска" и найдена запись, содержащая "Строка поиска", последняя теряет свою заглавную букву. Есть ли способ обойти это?

Мне нужно включить подсветку для результатов поиска.

Проблема не в том, чтобы найти строку или выделить ее. Я могу использовать str_ireplace для достижения этой цели. Но это потеряет капитализацию. Что я хочу, так это оставить капитализацию без изменений.

3 ответа

Решение

Вы можете использовать preg_replace.

$haystack = 'Some text here.';
$str = preg_replace( "#(.*)(text)(.*)#i", '\1<b>\2</b>\3', $haystack );

Просто используйте str_replace вместо str_ireplace.

Используйте стрипы для поиска.

if ( stripos( $haystack, $needle ) !== false )
    echo $needle, ' found!';
Другие вопросы по тегам