在PHP中,哪个更快:preg_split还是爆炸?

2022-08-30 19:03:54

当使用它来提取php中搜索查询中的关键字时,这更快:

$keyword = preg_split('/[\s]+/', $_GET['search']);

$keyword = explode(' ', $_GET['search']);

答案 1

每 PHP.net 爆炸更快

提示 如果您不需要正则表达式的强大功能,则可以选择更快(尽管更简单)的替代方法,如 explode() 或 str_split()。


答案 2

在简单的用法中比更快,请参阅:micro-optimization.com/explode-vs-preg_split(链接来自 web.archive.org)explode()

但是preg_split具有支持带 的制表符 () 和空格的优点。\t\s

元字符用于查找空格字符。\s

空格字符可以是 (http://php.net/manual/en/regexp.reference.escape.php):

  • 空格字符 (32 =0x20)
  • 制表符 (9 =0x09)
  • 回车符 (13 =0x0D)
  • 换行符 (10 =0x0A)
  • 换行符 (12 =0x0C)

在这种情况下,您应该看到成本和收益。

提示,使用array_filter“删除”数组中的空项目:

例:

$keyword = explode(' ', $_GET['search']); //or preg_split
print_r($keyword);

$keyword = array_filter($arr, 'empty');
print_r($keyword);

注意:正则表达式性能


推荐