В PHP, который быстрее: preg_split или взрывается?

Это может показаться глупым вопросом, но: что быстрее при использовании его для извлечения ключевых слов в поисковом запросе в php:

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

или

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

Ответы

Ответ 1

Взрыв быстрее, на PHP.net

Совет. Если вам не нужна сила регулярных выражений, вы можете выбрать более быстрые (хотя и более простые) альтернативы, такие как explode() или str_split().

Ответ 2

В простом использовании explode(), чем быстрее, см. micro-optimization.com/explode-vs-preg_split (ссылка из Интернета .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

Ответ 3

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

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