Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Сравнение двух скриптов по скорости  (Прочитано 4851 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Shredder
Гость
« : 07-08-2010 00:59 » 

Какой скрипт будет работать быстрее: первый, или же всё-таки второй? Оба выполняют одну и ту же функцию.

Код:
$image_types = array('.gif', '.jpg', '.jpe', '.png', '.bmp');
preg_match_all('#' . get_preg_expression('url') . '#i', $this->message, $matches);
foreach ($matches[0] as $match)
{
foreach ($image_types as $extension)
{
if (stripos($match, $extension) !== false)
{
$this->warn_msg[] = $user->lang['DISALLOWED_SITE'];
return (!$update_this_message) ? $return_message : $this->warn_msg;
}
}
}

Код:
preg_match_all('#' . get_preg_expression('url') . '#i', $this->message, $matches);
foreach ($matches[0] as $match)
{
if (preg_match('#(\.gif|\.jpg|\.jpe|\.png|\.bmp)#i', $match))
{
$this->warn_msg[] = $user->lang['DISALLOWED_SITE'];
return (!$update_this_message) ? $return_message : $this->warn_msg;
}
}
« Последнее редактирование: 07-08-2010 02:00 от Shredder » Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 07-08-2010 03:52 » 

Быстрее:

Код:
if (in_array($match, $image_types)) // ...

Еще быстрее, если массив $image_types предварительно развернуть - поменять ключи и значения местами, а потом проверять по индексу.

Код:
$image_types = array_flip($image_types);

// ....

if (isset($image_types[$match])) // ...

Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines