21 ошибка программиста PHP. Часть 2 - Неоправданное использование регулярных выражений

ОГЛАВЛЕНИЕ

10. Неоправданное использование регулярных выражений

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

Например, для перевода целой строки в заглавные буквы, новичок в PHP мог бы написать следующее:

<?php
$URL
= "http://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()

При успешной замене замену регулярного выражения одной из этих функций вы можете рассчитывать на резкое повышение скорости, особенно если анализу подвергаются строки больших размеров.