Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Откуда функция get_browser(null) по умолчанию берёт user agent ? / 18 сообщений из 18, страница 1 из 1
07.11.2014, 22:20
    #38799085
Cyrax_02
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда функция get_browser(null) по умолчанию берёт user agent ?
Если первым параметром функции передать null
Код: php
1.
get_browser(null, true)

то функция вернёт информацию о текущем браузере

Откуда функция get_browser(null) по умолчанию берёт user agent ?
Проверил - НЕ из глобальных переменных $_ENV , $HTTP_ENV_VARS , $_SERVER , $HTTP_SERVER_VARS .
Тогда откуда ещё можно получить user agent ?
...
Рейтинг: 0 / 0
08.11.2014, 11:59
    #38799235
Cyrax_02
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда функция get_browser(null) по умолчанию берёт user agent ?
Похоже, user agent функция берёт непосредственно из заголовков запроса.

Только вот getallheaders() у меня не работает (в php 5.3), т.к. php работает как fcgi.
Как ещё можно непосредственно посмотреть заголовки запроса в php 5.3, работающем как fcgi ?
...
Рейтинг: 0 / 0
08.11.2014, 16:02
    #38799340
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда функция get_browser(null) по умолчанию берёт user agent ?
http://ru2.php.net/manual/ru/function.get-browser.php По умолчанию, используется значение HTTP User-Agent.
...
Рейтинг: 0 / 0
08.11.2014, 21:29
    #38799474
Cyrax_02
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда функция get_browser(null) по умолчанию берёт user agent ?
Т.е. не из заголовка запроса ?
...
Рейтинг: 0 / 0
08.11.2014, 21:50
    #38799492
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда функция get_browser(null) по умолчанию берёт user agent ?
Ну заголовки то запроса изначально ловит вебсервер. И раздает их куда надо. Даже засомневался и проверил - усё на месте, в $_SERVER["HTTP_USER_AGENT"] попадает строка юзерагента (Server API CGI/FastCGI, вебсервер Apache 2.2).
...
Рейтинг: 0 / 0
09.11.2014, 01:17
    #38799622
Cyrax_02
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда функция get_browser(null) по умолчанию берёт user agent ?
авторДаже засомневался и проверил - усё на месте, в $_SERVER["HTTP_USER_AGENT"] попадает строка юзерагентаНо get_browser эту строку не использует.
В переменных $_ENV, $HTTP_ENV_VARS и $HTTP_SERVER_VARS тоже есть строка user agent. Но get_browser и из этих переменных агента не читает.
Единственный вариант - "прямой" доступ к заголовкам, подобно функции getallheaders() ...
...
Рейтинг: 0 / 0
09.11.2014, 01:40
    #38799643
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда функция get_browser(null) по умолчанию берёт user agent ?
Cyrax_02Но get_browser эту строку не использует.Если я правильно понимаю документацию, первым параметром можно передать строку для анализа. Казалось бы. Однако, у меня почему-то и
Код: php
1.
get_browser($_SERVER["HTTP_USER_AGENT"], true)

не отдает ожидаемое.
...
Рейтинг: 0 / 0
09.11.2014, 02:38
    #38799693
Cyrax_02
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда функция get_browser(null) по умолчанию берёт user agent ?
vkleЕсли я правильно понимаю документацию, первым параметром можно передать строку для анализа. Казалось бы. Однако, у меня почему-то и
Код: php
1.
get_browser($_SERVER["HTTP_USER_AGENT"], true)

не отдает ожидаемое.И что она отдаёт ? Должна отдавать массив с информацией о Вашем браузере.
Если, конечно, в настройках php прописан путь к существующему browscap.ini. Если нет - вернёт false.
...
Рейтинг: 0 / 0
09.11.2014, 10:45
    #38799753
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда функция get_browser(null) по умолчанию берёт user agent ?
Мой браузер в $_SERVER["HTTP_USER_AGENT"] определился как вполне нормальный "Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0"

Путь к browscap.ini в phpinfo() виден как /etc/php/5.4/cgi/browscap.ini, однако, файл слегка устаревший. Начало его такое:
Код: php
1.
2.
3.
4.
5.
6.
;;; Provided courtesy of http://browsers.garykeith.com
;;; Created on September 19, 2008 at 10:25:25 AM GMT

[GJK_Browscap_Version]
Version=4137
Released=Fri, 19 Sep 2008 10:25:25 -0000



get_browser($_SERVER["HTTP_USER_AGENT"], true) отдает массив без информации о моем браузере (под спойлером):
Код: 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.
62.
array(30) {
  ["browser_name_regex"]=>
  string(6) "�^.*$�"
  ["browser_name_pattern"]=>
  string(1) "*"
  ["browser"]=>
  string(15) "Default Browser"
  ["version"]=>
  string(1) "0"
  ["majorver"]=>
  string(1) "0"
  ["minorver"]=>
  string(1) "0"
  ["platform"]=>
  string(7) "unknown"
  ["alpha"]=>
  string(0) ""
  ["beta"]=>
  string(0) ""
  ["win16"]=>
  string(0) ""
  ["win32"]=>
  string(0) ""
  ["win64"]=>
  string(0) ""
  ["frames"]=>
  string(1) "1"
  ["iframes"]=>
  string(0) ""
  ["tables"]=>
  string(1) "1"
  ["cookies"]=>
  string(0) ""
  ["backgroundsounds"]=>
  string(0) ""
  ["cdf"]=>
  string(0) ""
  ["vbscript"]=>
  string(0) ""
  ["javaapplets"]=>
  string(0) ""
  ["javascript"]=>
  string(0) ""
  ["activexcontrols"]=>
  string(0) ""
  ["isbanned"]=>
  string(0) ""
  ["ismobiledevice"]=>
  string(0) ""
  ["issyndicationreader"]=>
  string(0) ""
  ["crawler"]=>
  string(0) ""
  ["cssversion"]=>
  string(1) "0"
  ["supportscss"]=>
  string(0) ""
  ["aol"]=>
  string(0) ""
  ["aolversion"]=>
  string(1) "0"
}

...
Рейтинг: 0 / 0
09.11.2014, 11:01
    #38799762
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда функция get_browser(null) по умолчанию берёт user agent ?
vkleоднако, файл слегка устаревшийВидимо, проблема в этом. Качнул с http://browscap.org/ свежую полную версию full_php_browscap.ini и положил взамен устаревшего. Теперь массив такой:
Код: 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.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
array(47) {
  ["browser_name_regex"]=>
  string(61) "�^mozilla/5\.0 \(.*linux x86_64.*\) gecko.* firefox/31\.0.*$�"
  ["browser_name_pattern"]=>
  string(49) "Mozilla/5.0 (*Linux x86_64*) Gecko* Firefox/31.0*"
  ["parent"]=>
  string(12) "Firefox 31.0"
  ["browser_bits"]=>
  string(2) "64"
  ["platform"]=>
  string(5) "Linux"
  ["platform_description"]=>
  string(5) "Linux"
  ["platform_bits"]=>
  string(2) "64"
  ["platform_maker"]=>
  string(16) "Linux Foundation"
  ["win32"]=>
  string(0) ""
  ["device_name"]=>
  string(13) "Linux Desktop"
  ["device_code_name"]=>
  string(13) "Linux Desktop"
  ["comment"]=>
  string(12) "Firefox 31.0"
  ["browser"]=>
  string(7) "Firefox"
  ["browser_type"]=>
  string(7) "Browser"
  ["browser_maker"]=>
  string(18) "Mozilla Foundation"
  ["version"]=>
  string(4) "31.0"
  ["majorver"]=>
  string(2) "31"
  ["frames"]=>
  string(1) "1"
  ["iframes"]=>
  string(1) "1"
  ["tables"]=>
  string(1) "1"
  ["cookies"]=>
  string(1) "1"
  ["javascript"]=>
  string(1) "1"
  ["javaapplets"]=>
  string(1) "1"
  ["cssversion"]=>
  string(1) "3"
  ["device_maker"]=>
  string(7) "Various"
  ["device_type"]=>
  string(7) "Desktop"
  ["device_pointing_method"]=>
  string(5) "mouse"
  ["renderingengine_name"]=>
  string(5) "Gecko"
  ["renderingengine_version"]=>
  string(4) "31.0"
  ["renderingengine_description"]=>
  string(83) "For Firefox, Camino, K-Meleon, SeaMonkey, Netscape, and other Gecko-based browsers."
  ["renderingengine_maker"]=>
  string(18) "Mozilla Foundation"
  ["browser_modus"]=>
  string(7) "unknown"
  ["minorver"]=>
  string(1) "0"
  ["platform_version"]=>
  string(7) "unknown"
  ["alpha"]=>
  string(0) ""
  ["beta"]=>
  string(0) ""
  ["win16"]=>
  string(0) ""
  ["win64"]=>
  string(0) ""
  ["backgroundsounds"]=>
  string(0) ""
  ["vbscript"]=>
  string(0) ""
  ["activexcontrols"]=>
  string(0) ""
  ["ismobiledevice"]=>
  string(0) ""
  ["istablet"]=>
  string(0) ""
  ["issyndicationreader"]=>
  string(0) ""
  ["crawler"]=>
  string(0) ""
  ["aolversion"]=>
  string(1) "0"
  ["device_brand_name"]=>
  string(7) "unknown"
}

...
Рейтинг: 0 / 0
09.11.2014, 12:33
    #38799799
Cyrax_02
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда функция get_browser(null) по умолчанию берёт user agent ?
авторget_browser($_SERVER["HTTP_USER_AGENT"], true) отдает массив без информации о моем браузере (под спойлером):Так и должно быть. get_browser всегда возвращает массив при любом непустом user agent .
При этом если браузер в browscap.ini не найден, поля массива принимают значения по умолчанию (unknown).
А у Вас файл древнющий - 2008 года. Тогда 31-й Mozilla'ы ещё не было.
...
Рейтинг: 0 / 0
09.11.2014, 12:34
    #38799800
Cyrax_02
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда функция get_browser(null) по умолчанию берёт user agent ?
авторвозвращает массивили объект, в зависимости от 2-го параметра
...
Рейтинг: 0 / 0
09.11.2014, 12:42
    #38799808
Cyrax_02
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда функция get_browser(null) по умолчанию берёт user agent ?
Предлагаю провести вот такой тест:
Код: php
1.
2.
3.
4.
$HTTP_USER_AGENT = $_SERVER['HTTP_USER_AGENT'];
$_SERVER['HTTP_USER_AGENT'] = 'Teleca-Obigo (JAVA): ALCATEL_2010X/1.0 ObigoInternetBrowser/Q03C';
$info = get_browser(null, true);
$_SERVER['HTTP_USER_AGENT'] = $HTTP_USER_AGENT; print_r($info);


Какой браузер покажет функция ?
...
Рейтинг: 0 / 0
09.11.2014, 12:54
    #38799809
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда функция get_browser(null) по умолчанию берёт user agent ?
Cyrax_02Какой браузер покажет функция ?Показала мой реальный браузер.
...
Рейтинг: 0 / 0
09.11.2014, 18:35
    #38799969
Cyrax_02
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда функция get_browser(null) по умолчанию берёт user agent ?
vkleCyrax_02Какой браузер покажет функция ?Показала мой реальный браузер.
А нужно получить браузер Obigo . При этом первым параметром функции get_browser должен быть null .
Такую задачу решить сможете ?
...
Рейтинг: 0 / 0
10.11.2014, 00:31
    #38800148
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда функция get_browser(null) по умолчанию берёт user agent ?
Cyrax_02Такую задачу решить сможете ?Вряд ли. Если только в исходниках покопаться... Но я не столь большой любитель этих дел )))


Cyrax_02При этом первым параметром функции get_browser должен быть null .Просто интересно, если не секрет, конечно. Почему нельзя использовать $_SERVER['HTTP_USER_AGENT'] первым параметром?
...
Рейтинг: 0 / 0
10.11.2014, 12:52
    #38800647
Cyrax_02
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда функция get_browser(null) по умолчанию берёт user agent ?
авторВряд ли. Если только в исходниках покопаться...
Т.е. Вы и предположить не можете, откуда get_browser может брать user_agent ?
...
Рейтинг: 0 / 0
10.11.2014, 13:52
    #38800760
Barlone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда функция get_browser(null) по умолчанию берёт user agent ?
Cyrax_02авторВряд ли. Если только в исходниках покопаться...
Т.е. Вы и предположить не можете, откуда get_browser может брать user_agent ?Оттуда же, откуда берутся все значения в $_SERVER. В зависимости от api: для CGI - из переменных окружения, для fastcgi/apache - передаются в запросе в соответствии со спецификациями api
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Откуда функция get_browser(null) по умолчанию берёт user agent ? / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]