いわゆる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 'マッチしました';
}