В 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 = explore(' ', $_GET['search']); //or preg_split print_r($keyword); $keyword = array_filter($arr, 'empty'); print_r($keyword); 

Примечание: RegExp Perfomance

Общее правило: если вы можете сделать что-то без регулярных выражений, сделайте это без них!

если вы хотите разделить строку пробелами, взорваться быстрее.