Php的哪些功能允许替换字符串中的搜索关键字?假设我们有一个字符串“你好!你好吗?”如果有人搜索“how”将呈现这个完整的字符串,并替换为:Hello! 你是如何?
Hello! <b>How</b> are you?
我尝试使用str_replace,虽然它区分大小写,所以肯定无法正常工作。然后我尝试了str_ireplace它工作但问题是替换它用所有小字符替换它。这是一段代码:
$myString = "Hello! How are you?";
$toSearch = "how";
$newString = str_ireplace($toSearch, '<b>'.$toString.'</b>', $myString);
结果是:你好! 你是怎么的?
Hello! <b>how</b> are you?
我希望这不应该像看起来那样棘手。其中一个是在我们的浏览器中:
答案 0 :(得分:3)
您正在寻找preg_replace()
。
$myString = "Hello! How are you?";
$toSearch = "how";
// Build a regex from $toSearch
$re = '/'.preg_quote($toSearch, '/').'/i'; // i == ignore case
// Use $re to search, replace each matching substring
// with itself surrounded by <b> and </b>
$newString = preg_replace($re, '<b>$0</b>', $myString);
如果您只需查找完整单词,则可以使用:
$re = '/\b'.preg_quote($toSearch, '\b/').'/i';
答案 1 :(得分:0)
$newString = str_ireplace($toSearch, '<b>'.ucwords($toString).'</b>', $myString);
这就是你想要的吗?
以上代码将使用大写单词
替换关键字