- 締切済み
サイト内検索で複数の言葉にマッチさせるには
簡素な検索エンジンを作りたいんですが 複数の言葉にマッチする仕組みが作れなくて困っています たとえば 検索したい文が$str 複数のキーワードが$key=array("AAA","BBB",....)だったとして for($j=0;$j<count($key);$j++){ if(mb_ereg_match("$key[$j]",$str)){print "HIT";} } だと只のor検索、$keyの中身を(AAA|BBB|...)の形に変えてpreg_matchさせても当然or検索 なにか複数の単語にマッチさせる方法はありませんでしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- yambejp
- ベストアンサー率51% (3827/7415)
回答No.1
foreachで回すとか? <?PHP $str=<<<eof aaa bbb ccc ddd eof; $keys=array("aaa","bbb"); $flg=true; foreach($keys as $val){ if(!preg_match("/{$val}/",$str)){ $flg=false; break; } } if($flg) print "HIT"; ?>
お礼
ヒットを探すのではなく、ヒットしなかったら無視するという考え方ですか。なるほど参考になりました、ありがとうございます!