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" }