26
Апр
2017

Можно ли из языка PHP убрать регулярное выражение?

Можно ли из языка PHP убрать регулярное выражение?

От автора: нужно из PHP убрать регулярное выражение! Долой господство regular expressions! Да здравствует… Вот видите, а заменить то нечем!

Только за!

Я тоже предлагаю избавиться от регулярок. Ох, как они мне надоели! Только нужно найти достойную замену. Когда найдется, «свистните»! А мы пока поговорим о главном недостатке регулярных – скорости обработке.

Считаю, что иногда можно обойтись без регулярок. Чаще всего при операциях со строками. Ведь в PHP для этого имеется множество специализированных функций, которые работают намного быстрее. Это и есть тот случай, когда можно из PHP удалить регулярное выражение.

Доказательство!

Для измерения используем функцию microtime(). Сначала узнаем, сколько займет времени операция поиска и замены слова в строке с помощью функции str_replace():

<?php
$begin = microtime(true);
$m = "Меньше слов, а больше business!";
$stroka = str_replace("business","<b>дела</b>",$m);
echo $stroka."<br />";
$time=round(microtime(true) - $begin,5);
echo "Скрипт выполнился за: ".$time." сек.";

?>

Можно ли из языка PHP убрать регулярное выражение?

Теперь выясним, стоит ли из PHP убирать регулярные выражения. Измерим время проведения той же операции с помощью регулярки.

<?php
$begin = microtime(true);
$text = "Меньше слов, а больше business!";
$str = preg_replace("/b.....ss/","дела", $text);
echo $str."<br />";
$time1=round(microtime(true) - $begin,5);
echo "Время выполнения скрипта: ".$time1." сек.";

?>

Можно ли из языка PHP убрать регулярное выражение?

Разница вроде бы и несущественная, но это только при обработке одной строки. А если нужно осуществить поиск по большому массиву данных? Тогда эта разница станет столь чувствительной, что может негативно отразиться на производительности всего ресурса.

В общем, ответ прост: из PHP удалять регулярные выражения еще рано, но иногда можно обходиться и без них. Главное знать, когда!

Share

Тебе может это понравится...