我想知道在php中根据大写和小写查找和替换单词的最佳方法。
我实际上是:
$chain = "My long chain";
$keyword = "My";
str_replace($keyword, "<span class='highlight1'>".$keyword."</span>", $chain);
适用于My
,但不适用于my
或MY
。
请问怎么做?
感谢。
答案 0 :(得分:3)
如果您只想标准化某些单词/表达式的所有形式,请使用str_ireplace进行不区分大小写的替换。实际上,PHP中的许多字符串函数都有不区分大小写的兄弟节点 - i
在其名称中附加了“action part”。
如果要保留原始大小写,请改用preg_replace使用不区分大小写的修饰符:
$pattern = preg_quote($keyword);
$result = preg_replace("/($pattern)/i",
'<span class="highlight">$1</span>', $chain);
Demo(我已将class
替换为style
以获得更清晰的演示。请注意,即使$1
expr在单引号文字中,它仍然是插值的。