PHPで検索キーワードを「”」みたいなクォート区切りを有効にしたGoogleみたいな感じで抜き出す方法
なにか "PHP function" で検索
みたいにすると、"PHP function"っていう文字列で検索してくれるじゃないですか。あのキーワードの取り出し方を知りたいなと思って検索してみたんですが、正規表現一発で取れるものとかなくってしょうがないなーって感じでPHPで日和ってみた結果です。
<?php function getSearchKeywords($text) { $keywords = array(); while (preg_match('/"([^\"]+)"/', $text, $m)){ $text = str_replace($m[0], '', $text); $keywords[] = $m[1]; } return array_filter(array_merge($keywords, explode(" ", $text))); } $text = 'aaa "bbb ccc" ddd eee "fff" ggg "hhh iii jjj" kkk'; var_dump(getSearchKeywords($text));
↓
array(8) {
[0]=>
string(7) "bbb ccc"
[1]=>
string(3) "fff"
[2]=>
string(11) "hhh iii jjj"
[3]=>
string(3) "aaa"
[5]=>
string(3) "ddd"
[6]=>
string(3) "eee"
[8]=>
string(3) "ggg"
[10]=>
string(3) "kkk"
}