2011-03-07 73 views
0

我想不敏感替换字符串,所以我使用str_ireplace(),但它做了一些我不想要的,我不知道如何克服这个问题。PHP不敏感取代

,所以这是我的代码:

$q = "pArty"; 
$str = "PARty all day long"; 
echo str_ireplace($q,'<b>' . $q . '</b>',$str); 

输出将是这样的:"<b>pArty</b> all day long"。 输出看起来像这样,因为我用它的敏感替换了传统变量$q

我该如何克服这个问题,输出结果将会是"<b>PARty</b> all day long"

+0

你读过你了吗? '$ str =“PARTY整天”;'为什么你需要str_ireplace?我想你忘了提及smth或者请编辑你的问题,但它不会使用str_ireplace来提供你输出的结果! – 2011-03-07 18:48:38

+0

我只编辑了你的格式问题,但为了将来的参考,你可以通过点击问题底部的'编辑[某时]以前的链接来查看编辑历史。它像一个wiki一样工作。 – 2011-03-07 18:56:13

+0

@poelince,是的,我有错字。我的意思是全天写'$ str =“PARTY”' – Ron 2011-03-07 18:58:36

回答

3

你可以因为你是问与 “P A R牛逼Y” 来代替 “P A R牛逼Y” 与preg_replace做到这一点,例如:

$q = preg_quote($q, '/'); // in case it has characters of significance to PCRE 
echo preg_replace('/' . $q . '/i', '<b>$0</b>', $str); 
+0

它做得很好,非常感谢! – Ron 2011-03-07 18:57:33

0

它。 按照指示,php服从了。然而,为什么你甚至想要更换任何东西?原文是你需要的词。

+0

我有自动完成插件,所以我想在结果中加粗查询字符串。我使用“喜欢”的条件,所以它返回不敏感的结果,因此我需要不敏感的替换。 – Ron 2011-03-07 18:55:59