我需要突出显示俄语文本中的搜索结果,但str_ireplace()在查询具有不同大小写时不起作用。我已经尝试了我在manual中找到的所有方法,但都不起作用。这里我尝试了:
<?php
setlocale (LC_ALL, 'ru_RU');
$query = 'ПрОбЛеМа';
$result = 'Эта проблема нам не знакома.';
$result = str_ireplace($query, "<strong>$query</strong>", $result); // does not work
$result = preg_replace("/($query)/i", '<strong>$1</strong>', $result); // does not work
$result = mb_eregi_replace("$query", "<strong>$query</strong>", $result); // does not work
$result = ext_str_ireplace($query, "<strong>$query</strong>", $result); // from php.net - does not work
$result = highlightStr($result, $query); // from php.net - does not work
?>
有什么办法可以让它工作吗?我快绝望了。
简体中文
3条答案
按热度按时间a2mppw5e1#
如果你在preg_replace中添加“u”(unicode)修饰符,它应该可以工作:
此外,您需要在正则表达式模式中引用特殊字符。
w7t8yxp52#
如果使用非ASCII/多字节,则可以使用mb_eregi_replace
但去掉“
您还可以设置您的编码:
fumotvh33#
更换时下降: