PHPプログラムに関する各種メモ書き

PHPでスペース区切りの文字列で検索文字をANDマッチする

いわゆるGoogleなどの検索エンジンのようにスペース区切りをANDマッチする方法

function list_and_match($data, $search_str_space_separated){
    $search_str_space_separated = mb_convert_kana($search_str_space_separated, "s");
    $search_list = array();
    $search_list = preg_split("/\s/",$search_str_space_separated);
    $flag = 1;
    foreach ($search_list as $v) {
        if ( ! preg_match("/{$v}/iu",$data) ){
            $flag = false;
            break;
        }
    }
    return $flag;
}
$text = "長い長い日本語のテストを行います。";
$search_text = "長い テスト";
if ( list_and_match($text, $search_text) ){
 echo 'マッチしました';
}

関連エントリー

No.983
12/08 20:14

edit

日本語