在PHP中,哪个更快:preg_split或爆炸



在php中使用它在搜索查询中提取关键字时,速度更快:

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

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

根据 PHP.net,爆炸速度更快

提示 如果您不需要正则表达式的强大功能,则可以选择更快(尽管更简单)的替代方案,如 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):

  • 空格字符 (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);

注意:正则表达式性能

一般规则:如果你可以在没有正则表达式的情况下做某事,那就在没有正则表达式的情况下做

如果你想用空格分割字符串,爆炸要快得多。

相关内容

  • 没有找到相关文章

最新更新