This may sound like a stupid question, but: which is faster when using it to extract keywords in a search query in php:
$keyword = preg_split('/[\s]+/', $_GET['search']);
or
$keyword = explode(' ', $_GET['search']);
This may sound like a stupid question, but: which is faster when using it to extract keywords in a search query in php:
$keyword = preg_split('/[\s]+/', $_GET['search']);
or
$keyword = explode(' ', $_GET['search']);
General rule: if you can do something without regular expressions, do it without them!
if you want to split string by spaces, explode is way faster.
Explode is faster, per PHP.net
In a simple usage
explode()
is than faster, see: micro-optimization.com/explode-vs-preg_split (link from web.archive.org)But
preg_split
has the advantage of supporting tabs (\t
) and spaces with\s
.the
\s
metacharacter is used to find a whitespace character.A whitespace character can be (http://php.net/manual/en/regexp.reference.escape.php):
0x20
)0x09
)0x0D
)0x0A
)0x0C
)In this case you should see the cost and benefit.
A tip, use
array_filter
for "delete" empty items in array:Example:
Note: RegExp Perfomance