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

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

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

или же

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

16

Решение

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

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

20

Другие решения

В простом использовании 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

11

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

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

7
По вопросам рекламы [email protected]