str_replace和大写或小写

时间:2013-09-15 23:50:00

标签: php str-replace

我想知道在php中根据大写和小写查找和替换单词的最佳方法。

我实际上是:

$chain = "My long chain";
$keyword = "My";
str_replace($keyword, "<span class='highlight1'>".$keyword."</span>", $chain);

适用于My,但不适用于myMY

请问怎么做?

感谢。

1 个答案:

答案 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在单引号文字中,它仍然是插值的。