文字列をスキャンして、単語のブラックリストと照合しようとしています。以前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'
、すべてが期待どおりに機能します。
ここで非常に明白な何かを見逃しましたか?