Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
 Аватар для dukesov
19 / 18 / 11
Регистрация: 24.08.2015
Сообщений: 471

Уменьшить код

03.01.2016, 17:11. Показов 1335. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго дня всем. Можно ли уменьшить данный код? И как прописать так, чтоб если по user agent устройство не найдено, писало, Неизвестное устройство?
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<?
if (strstr ($_SERVER ["HTTP_USER_AGENT"], "iPhone" )) $device = "Устройство iPhone";
if (strstr ($_SERVER ["HTTP_USER_AGENT"], "iPad" )) $device = "Устройство iPad";
if (strstr ($_SERVER ["HTTP_USER_AGENT"], "iPod" )) $device = "Устройство iPod";
 
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 9_2")) $os = "iOS 9.2";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 9_1")) $os = "iOS 9.1";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 9_0_2")) $os = "iOS 9.0.2";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 9_0_1")) $os = "iOS 9.0.1";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 9_0")) $os = "iOS 9.0";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 8_4_1")) $os = "iOS 8.4.1";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 8_4")) $os = "iOS 8.4";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 8_3")) $os = "iOS 8.3";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 8_2")) $os = "iOS 8.2";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 8_1_3")) $os = "iOS 8.1.3";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 8_1_2")) $os = "iOS 8.1.2";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 8_1_1")) $os = "iOS 8.1.1";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 8_1")) $os = "iOS 8.1";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 8_0")) $os = "iOS 8.0";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 7_1_2")) $os = "iOS 7.1.2";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 7_1_1")) $os = "iOS 7.1.1";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 7_1")) $os = "iOS 7.1";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 7_0_6")) $os = "iOS 7.0.6";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 7_0_4")) $os = "iOS 7.0.4";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 7_0_3")) $os = "iOS 7.0.3";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 7_0_2")) $os = "iOS 7.0.2";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 7_0")) $os = "iOS 7.0";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 6_1_6")) $os = "iOS 6.1.6";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 6_1_3")) $os = "iOS 6.1.3";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 6_1_2")) $os = "iOS 6.1.2";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 6_1")) $os = "iOS 6.1";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 6_0_1")) $os = "iOS 6.0.1";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 6_0")) $os = "iOS 6.0";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 5_1_1")) $os = "iOS 5.1.1";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 5_1")) $os = "iOS 5.1";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 5_0_1")) $os = "iOS 5.0.1";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 5_0")) $os = "iOS 5.0";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 4_3_5")) $os = "iOS 4.3.5";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 4_3_4")) $os = "iOS 4.3.4";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 4_3_3")) $os = "iOS 4.3.3";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 4_3_2")) $os = "iOS 4.3.2";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 4_3_1")) $os = "iOS 4.3.1";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 4_3")) $os = "iOS 4.3";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 4_2_10")) $os = "iOS 4.2.10";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 4_2_9")) $os = "iOS 4.2.9";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 4_2_8")) $os = "iOS 4.2.8";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 4_2_7")) $os = "iOS 4.2.7";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 4_2_6")) $os = "iOS 4.2.6";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 4_2_1")) $os = "iOS 4.2.1";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 4_1")) $os = "iOS 4.1";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 4_0_2")) $os = "iOS 4.0.2";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 4_0_1")) $os = "iOS 4.0.1";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 4_0")) $os = "iOS 4.0";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 3_1_3")) $os = "iOS 3.1.3";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 3_1_2")) $os = "iOS 3.1.2";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 3_1")) $os = "iOS 3.1";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 3_0_1")) $os = "iOS 3.0.1";
if (strstr($_SERVER["HTTP_USER_AGENT"], "OS 3_0")) $os = "iOS 3.0";
 
echo $device . " " . $os;
?>
Добавлено через 4 минуты
Пробовал так:
PHP
1
2
3
4
5
6
7
8
9
10
if (strstr ($_SERVER ["HTTP_USER_AGENT"], "iPhone" )) {
    echo "Устройство iPhone";
}
if (strstr ($_SERVER ["HTTP_USER_AGENT"], "iPad" )) {
    echo "Устройство iPad";
}
if (strstr ($_SERVER ["HTTP_USER_AGENT"], "iPod" )) {
    echo "Устройство iPod";
}
else echo "Устройство неизвестно";
С компа пишет "Устройство не известно", с iPhone пишет "Устройство iPhone Устройство не известно".
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.01.2016, 17:11
Ответы с готовыми решениями:

Как уменьшить код?
Здравствуйте, написал код. Но меня смущает 3 запроса к БД. Как его можно сделать короче? &lt;? ob_start(); $sql= &quot;SELECT * FROM...

Матрица . Как уменьшить код
&lt;?php $base_numbers = array(1, 3, 10, 2, 5); $increment_matrix = array(); $summ = 0; foreach ($base_numbers as...

Навигация по сайту. Как оптимизировать и уменьшить код
Придумываю навигацию по сайту. Вот что вышло, как уменьшить может в массив засунуть кто подскажет? &lt;? echo '&lt;a...

5
Фрилансер
Эксперт PythonЭксперт JSЭксперт PHP
 Аватар для Azdeman
1871 / 1362 / 604
Регистрация: 12.01.2011
Сообщений: 5,470
03.01.2016, 17:33
Лучший ответ Сообщение было отмечено dukesov как решение

Решение

Ну код сократить можно так вот например , в массив добавляете все устройства.. и потом в цикле проверяете.
PHP
1
2
3
4
5
6
7
8
<?php
    $arr = array("Windows","Linux");
        for($i=0;$i<count($arr);$i++){
            if(strstr($_SERVER ["HTTP_USER_AGENT"],$arr[$i])){
                echo "Вы используете".$arr[$i];
            }
        }
?>
1
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
03.01.2016, 18:59
Можно вот эту библиотеку (mobiledetect) взять, вместо своего велосипеда.
2
 Аватар для dukesov
19 / 18 / 11
Регистрация: 24.08.2015
Сообщений: 471
03.01.2016, 19:55  [ТС]
Jewbacabra, мой велосипед попроще будет) там лишнего много. Мне достаточно только i устройства и версию прошивки)
1
2 / 2 / 4
Регистрация: 02.01.2016
Сообщений: 13
04.01.2016, 02:57
Лучший ответ Сообщение было отмечено dukesov как решение

Решение

Цитата Сообщение от dukesov Посмотреть сообщение
Jewbacabra, мой велосипед попроще будет)
Но вот проблема что Ваш велосипед неправильно написан... Покрайне мере версии он точно будет дектектить не очень хорошо... Вот например OS 3_0_1 он распознает как OS 3_0, знаете почему? Всё правильно, потому что строка "OS 3_0" будет найдена в строке содержащей "OS 3_0_1". А вообще пробуйте так:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
$uAgent = isset($_SERVER ['HTTP_USER_AGENT']) ? $_SERVER ['HTTP_USER_AGENT'] : '';
$os = 'Unknown OS.';
$device = 'Unknown device.';
 
if (preg_match('/iP(hone|ad|od)/', $uAgent, $dev)) {
    $device = 'Устройство ' . $dev[0];
    if(preg_match('/OS\s[0-9]*.\S*/', $uAgent, $o)){
        $os = 'i' . str_replace('_', '.', $o[0]);
    }
}
 
echo $device . ' ' . $os;
1
 Аватар для dukesov
19 / 18 / 11
Регистрация: 24.08.2015
Сообщений: 471
04.01.2016, 11:57  [ТС]
Magic_Style, то что нужно! спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.01.2016, 11:57
Помогаю со студенческими работами здесь

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

Уменьшить код
Можно как-то поменьше сделать? #include &lt;iostream&gt; #include &lt;ctime&gt; int compare(int Ch,int usernum1) { while(true) ...

Уменьшить код
Всем привет, у меня есть код который делает всего ничего, но занимает очень много строк. Суть заключается в том, что я хочу чтобы при...

Как уменьшить код
Сабж, код: &lt;div id=&quot;wrapper&quot;&gt; &lt;div id=&quot;galery&quot;&gt; &lt;img src=&quot;&quot; alt=&quot;&quot;&gt; &lt;img src=&quot;&quot; alt=&quot;&quot;&gt; &lt;img src=&quot;&quot; alt=&quot;&quot;&gt; &lt;img src=&quot;&quot;...

Как уменьшить код?
Есть задание: Информация о доходах М фирм за N месяцев, заданная в виде таблицы Определить наибольшую прибыль среди всех фирм за все...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru