Страница 9 из 12 10. Неоправданное использование регулярных выражений Регулярные выражения - мощный инструмент для поиска и организации данных, как, например, проверка адреса электронной почты на корректность или поиск URL. Но в то же время регулярные выражения работают медленнее других функций PHP, предназначенных для более простых задач. Например, для перевода целой строки в заглавные буквы, новичок в PHP мог бы написать следующее: <?php $URL = "https://www.php.net"; $fp = @fopen ($URL, "r"); if (!$fp) { die ("Сбой при открытии $URL!"); } while ($line = @fgets ($fp, 1024)){ $data .= $line; } @fclose ($fp) or warn ("Сбой при закрытии дескриптора $URL"); $data = ereg_replace ("[a-z]", "[A-Z]", $data); print $data; ?> Однако, в этом случае, используя тяжеловесный и медленный ereg_replace(), он потратил бы кучу драгоценного времени выполнения на задачу, с которой более лёгкая функция strtoupper() справилась бы намного быстрее $data = strtoupper ($data); В общем, всегда следует искать более "лёгкую" замену регулярным выражениям, поскольку скорость выполнения вашего скрипта в таких случаях резко возрастает. Эти функции должен знать каждый Здесь будут перечислены несколько жизненно необходимых функций, сокращающих время выполнения вашего скрипта: strtoupper(); strtolower(); ucfirst(); strtr(); str_replace(); trim(); explode(); implode(); substr(); strcmp() При успешной замене замену регулярного выражения одной из этих функций вы можете рассчитывать на резкое повышение скорости, особенно если анализу подвергаются строки больших размеров. |