我正在尝试扫描字符串以检查单词黑名单。我曾经preg_quote
处理过星号等特殊字符,但它似乎不适用于美元符号。
这是我一直在运行的测试:
$string_to_check = 'wordcontaining$';
$naughty_words = array('wordcontaining$', 'a*differentstring');
if(isset($naughty_words)){
foreach($naughty_words as $word){
if (preg_match('/\b'.preg_quote($word).'\b/i',$string_to_check)) {
var_export(array('found'=> true, 'word'=>$word));
}
}
}
我希望返回
array (
'found' => true,
'word' => 'wordcontaining$',
)
但不幸的是,事实并非如此。如果我设置$string_to_check = 'a*differentstring'
,那么一切都按预期工作。
我在这里错过了一些非常明显的东西吗?