これは愚かな質問のように聞こえるかもしれませんが、phpの検索クエリでキーワードを抽出するために使用する方が高速です。
$keyword = preg_split('/[\s]+/', $_GET['search']);
または
$keyword = explode(' ', $_GET['search']);
ヒント正規表現の能力が必要ない場合は、explode()やstr_split()などのより高速な(単純ですが)代替を選択できます。
単純な使用法では、explode()
の方が高速です。以下を参照してください。 micro-optimization.com/explode-vs-preg_split (web.archive.orgからのリンク)
ただし、 preg_split
には、タブ(\t
)および\s
付きのスペースをサポートするという利点があります。
\s
メタ文字は、空白文字を見つけるために使用されます。
空白文字は( http://php.net/manual/en/regexp.reference.escape.php )になります。
0x20
)0x09
)0x0D
)0x0A
)0x0C
)この場合、コストとメリットが表示されます。
ヒント、配列内の空の項目を「削除」するには array_filter
を使用します。
例:
$keyword = explode(' ', $_GET['search']); //or preg_split
print_r($keyword);
$keyword = array_filter($arr, 'empty');
print_r($keyword);
一般的な規則:正規表現なしで何かを実行できる場合は、それらなしで実行できます!
スペースで文字列を分割する場合は、分解がはるかに高速です。