Забыли пароль?
Запросите новый здесь.

Автор темы: Pisatel
ID темы: 2451
Информация:
Тема содержит 8 сообщения, была просмотрена 3759 раз.
Просмотр темы
PHP-Fusion Russia » Веб-разработка » PHP
 Распечатать тему
Какой код быстрее?
Pisatel
Всем здрасте. Мне нужно из user agent вычислить, бот это от пс или нет. Вот два варианта:
Загрузить источник  GeSHi: PHP
  1. if (isset($_SERVER['HTTP_USER_AGENT'])){
  2. $agent = descript($_SERVER['HTTP_USER_AGENT']);
  3. $bot = preg_match("/(yandex|google|msnbot|bingbot|mail|yahoo|rambler|aport|webcrawler|webalta)/i", $agent) ? "bot" : "browser";
  4. } else {
  5. $bot = "Unknown";
  6. }
Добавлено за 0.031 секунд, используя GeSHi 1.0.8.10

или
Загрузить источник  GeSHi: PHP
  1. if (isset($_SERVER['HTTP_USER_AGENT'])){
  2. $agent = descript($_SERVER['HTTP_USER_AGENT']);
  3. $nbot = array("yandex", "google", "msnbot", "bingbot", "mail", "yahoo", "rambler", "aport", "webcrawler", "webalta");
  4. for ($i = 0, $c_i = sizeof($nbot); $i <= $c_i; $i++) {
  5. if (stripos($agent, $nbot[$i]) !== false) {
  6. $bot = "bot";
  7. break;
  8. } else {
  9. $bot = "browser";
  10. }
  11. }
  12. } else {
  13. $bot = "Unknown";
  14. }
Добавлено за 0.030 секунд, используя GeSHi 1.0.8.10

Какой предпочтительней (быстрее, так как важна скорость) ? Вариант с foreach отпадает: медленно и ресурсоемко. Или, может, кто подскажет другой вариант? Есть еще array_search(), может, этот вариант лучше будет?
Переполз на WP, но PF - это как первая любовь, которая не забывается...
 
Web
Rush
бред собачий. что ты хочешь сэкономить? две миллионные секунды? или 5 кбайт памяти?
кто сказал что foreach хуже чем for?
если важна скорость, то такие вещи нужно делать на уровне веб-сервера или прокси, зачем лишний раз в память грузить пхп.
 
Web
Pisatel
Rush, бред собачий- это твое "умение" общаться. Не можешь разговаривать по-человечески- иди мимо. foreach делает копию массива, for- просто перебирает. Мне важны эти доли секунд, поэтому и обратился с вопросом.
Переполз на WP, но PF - это как первая любовь, которая не забывается...
x1
 
Web
FILON
Foreach умеет работать по ссылке.

Подробные данные можно посмотреть в бенчмарках.
Например, foreach() vs. for() vs. while(list() = each())

Если интересуют цифры, то можете протестировать алгоритм на нескольких тысячах итерациях. Можно, например, с помощью готового бенч-скрипта, если нет желания писать самому: PHP benchmark Script
What's common between Halloween and Christmas? Every programmer knows: 31 oct = 25 dec.
 
Rush
то что foreach делает копию массива не делает его более медленным. опиши юзкейс для приведенной проблемы
 
Web
Pisatel
FILON, благодарю за ссылки. Вчера тоже почитал http://habrahabr....st/216103/ и понял, что ошибалсяab
Rush, ты во мне мегаКодыра видишь? Так это не так. Я лишь поинтересовался, что быстрее, какой вариант. Нужно это для плагина под фьюжн, поэтому без пэхапэ не обойтись.
Переполз на WP, но PF - это как первая любовь, которая не забывается...
 
Web
Polarfox
Имхо не считай спички, регулярка на мелкой строке не сделает задержки, если у тебя не от 100к посетителей, конечно.
Зато посмотри как она наглядна!
Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле. | Вся бесплатная тех. поддержка только на форуме

PolarLab - вход для подопытных
 
Web
Pisatel
PolarFox, рассуждал в аналогичном ключе. Здесь одна функция preg_match, в остальных случаях их минимум две (конструкция for или foreach плюс строковая функция). Оставил регулярку.
Переполз на WP, но PF - это как первая любовь, которая не забывается...
 
Web

Поделиться этой темой
Социальные закладки: Vkontakte Odnoklassniki Mail.ru Facebook Google Tweet This
URL:
BBcode:
HTML:

Перейти на форум:
Похожие темы
Темы Форум Ответов / Просмотров Последние сообщения
Какой слайдер лучше fancybox или colorbox?  →  Народное творчество 1 / 371 06.11.2018 07:24
Какой браузер используете?  →  Флуд 17 / 3701 30.08.2018 13:11
Какой файл-менеджер посоветуете приделать кроме TinyBrowser от TinуMCE?  →  Пожелания и предложения 0 / 691 04.03.2018 12:38
С какой CMS легче всего тырить темы для PHP-Fusion?  →  Темы оформления 7 версии 0 / 4097 11.06.2017 10:01
comments_include.php как скрыть ссылки в комментариях (не обрабатывать BB-код url)  →  Установка и настройка системы 0 / 4706 03.05.2017 14:12
php код  →  Вопросы новичков 13 / 13836 10.01.2017 17:28
Код сайта  →  Установка и настройка системы 9 / 11814 18.10.2015 17:10
Какой плагин PHP-Fusion Вы бы использовали для создания фриланс биржи?  →  Пожелания и предложения 0 / 2293 26.08.2015 21:45
Убрать код в панели новостей  →  Моды 6 / 4300 31.03.2015 17:39
секретный код в админпанели  →  Книга жалоб и предложений 3 / 2170 13.05.2014 05:37
Топ 5 пользователей форума
Alex Alex (1,209)   Zaxap Zaxap (1,089)   Vova Vova (877)   Pisatel Pisatel (678)   util util (666)