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

在PHP中,哪个更快:preg_split还是explode?,php,explode,preg-split,Php,Explode,Preg Split,这听起来可能是一个愚蠢的问题,但是:在php中使用它提取搜索查询中的关键字时,哪个更快 $keyword = preg_split('/[\s]+/', $_GET['search']); 或 提示:如果您不需要正则表达式的强大功能,可以选择更快(尽管更简单)的替代方法,如explode()或str_split() 一般规则:如果你可以不用正则表达式做一些事情,那就不用正则表达式了 如果要按空格拆分字符串,explode要快得多。简单使用explode()要快得多,请参阅: 但是具有支持制表

这听起来可能是一个愚蠢的问题,但是:在php中使用它提取搜索查询中的关键字时,哪个更快

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

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


一般规则:如果你可以不用正则表达式做一些事情,那就不用正则表达式了


如果要按空格拆分字符串,explode要快得多。

简单使用
explode()
要快得多,请参阅:

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

\s
元字符用于查找空白字符

空白字符可以是():

  • 空格字符(32=
    0x20
  • 制表符(9=
    0x09
  • 回车符(13=
    0x0D
  • 新行字符(10=
    0x0A
  • 换页字符(12=
    0x0C
在这种情况下,您应该看到成本和收益

提示,用于“删除”数组中的空项:

例如:

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

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

注意:

提示:
explode()
也适用于其他字符是的,我知道。但是,如果他想要例如按空格、制表符或新行分割,那就不好了:)explode也可以支持制表符
explode(“\t”,$string)
@Forien我没有说
explode()
不支持“制表符”,我说
\s
带有
preg\u split
的同时支持“空格”和“制表符”。)没问题,但我发现这句话有误导性:)无论如何,在你的例子中,最好的答案是explore而不是explode“在一个简单的用法中explode()比explode更快”-是否有任何用法explode不会更快?
$keyword = explode(' ', $_GET['search']); //or preg_split
print_r($keyword);

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