我想知道在 php 中根据大小写查找和替换单词的最佳方法。
我实际上有:
$chain = "My long chain";
$keyword = "My";
str_replace($keyword, "<span class='highlight1'>".$keyword."</span>", $chain);
Run Code Online (Sandbox Code Playgroud)
它适用于My但不适用于myor MY。
请问该怎么做?
谢谢。
如果您只想标准化某些单词/表达式的所有形式,请使用str_ireplace进行不区分大小写的替换。实际上,PHP 中的许多字符串函数都有不区分大小写的兄弟函数 -i在其名称中添加了“操作部分”。
如果要保留原始大小写,请使用preg_replace和不区分大小写修饰符:
$pattern = preg_quote($keyword);
$result = preg_replace("/($pattern)/i",
'<span class="highlight">$1</span>', $chain);
Run Code Online (Sandbox Code Playgroud)
演示(为了更清晰的演示,我已替换class为)。style请注意,尽管$1这里的 expr 位于单引号文字中,但它仍然是插值的。