Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.03.12;
Скачать: [xml.tar.bz2];

Вниз

TWebBrowser и php   Найти похожие ветки 

 
БарЛог ©   (2006-02-19 20:56) [0]

Два вопроса, один по компоненте, другой по php:
1. PHP: скрипт на пхп каким-то образом узнает, какой браузер его использует. Каким образом? Желателен текст скрипта.

2. Используя TWebBrowser, можно ли тому скрипту послать свою информацию (о браузере)? Например, пишу свой браузер, используя тот компонент. Браузер "ааа". Можно ли сделать так, чтоб тот скрипт отображал "ааа"?

ЗЫ Всем привет!


 
Юрий ©   (2006-02-19 21:00) [1]

Ответ на первый вопрос:


/**
*        Return Operation System from user agent string
*        @param Array
*        @param String
*        @return String
*/
       function getSystem($arrSystem,$userAgent)
       {
               $system = "Other";
               foreach($arrSystem as $key => $value)
               {
                       if (strpos($userAgent, $key) !== false)
                       {
                               $system = $value;
                               break;
                       }
               }
               return $system;
       }

/**
*        Return Browser from user agent string
*        @param Array
*        @param String
*        @return Associative Array
*/
       function getBrowser($arrBrowser,$userAgent)
       {
               $version = "";
               $browser = "Other";
               if (($pos = strpos($userAgent, "Opera")) !== false)
               {
                       $browser = "Opera";
                       $pos += 6;
                       if ((($posEnd = strpos($userAgent, ";", $pos)) !== false) || (($posEnd = strpos($userAgent, " ", $pos)) !== false))
                               $version = trim(substr($userAgent, $pos, $posEnd - $pos));
               }
               elseif (($pos = strpos($userAgent, "MSIE")) !== false)
               {
                       $browser = "Internet Explorer";
                       $posEnd = strpos($userAgent, ";", $pos);
                       if ($posEnd !== false)
                       {
                               $pos += 4;
                               $version = trim(substr($userAgent, $pos, $posEnd - $pos));
                       }
               }
               elseif (((strpos($userAgent, "Gecko")) !== false) && ((strpos($userAgent, "Netscape")) === false))
               {
                       $browser = "Mozila";
                       if (($pos = strpos($userAgent, "rv:")) !== false)
                       {
                               $posEnd = strpos($userAgent, ")", $pos);
                               if ($posEnd !== false)
                               {
                                       $pos += 3;
                                       $version = trim(substr($userAgent, $pos, $posEnd - $pos));
                               }
                       }
               }
               elseif ((strpos($userAgent, " I;") !== false) || (strpos($userAgent, " U;") !== false) || (strpos($userAgent, " U ;") !== false) || (strpos($userAgent, " I)") !== false) || (strpos($userAgent, " U)") !== false))
               {
                       $browser = "Netscape Navigator";
                       if (($pos = strpos($userAgent, "Netscape6")) !== false)
                       {
                               $pos += 10;
                               $version = trim(substr($userAgent, $pos, strlen($userAgent) - $pos));
                       }
                       else
                       {
                               if (($pos = strpos($userAgent, "Mozilla/")) !== false)
                               {
                                       if (($posEnd = strpos($userAgent, " ", $pos)) !== false)
                                       {
                                               $pos += 8;
                                               $version = trim(substr($userAgent, $pos, $posEnd - $pos));
                                       }
                               }
                       }
               }
               else
               {
                       foreach($arrBrowser as $key => $value)
                       {
                               if (strpos($userAgent, $key) !== false)
                               {
                                       $browser = $value;
                                       break;
                               }
                       }
               }
               $userAgentArr["browser"] = $browser;
               $userAgentArr["version"] = $version;
               return $userAgentArr;
       }

А вот сами массивы со значениями: Код (any language):  скопировать код в буфер обмена

       $arrSystem["Windows 3.1"] = "Windows 3.1";
       $arrSystem["Win16"] = "Windows 3.1";
       $arrSystem["16bit"] = "Windows 3.1";
       $arrSystem["Win32"] = "Windows 95";
       $arrSystem["32bit"] = "Windows 95";
       $arrSystem["Win 32"] = "Windows 95";
       $arrSystem["Win95"] = "Windows 95";
       $arrSystem["Windows 95/NT"] = "Windows 95";
       $arrSystem["Win98"] = "Windows 98";
       $arrSystem["Windows 95"] = "Windows 95";
       $arrSystem["Windows 98"] = "Windows 98";
       $arrSystem["Windows NT 5.0"] = "Windows 2000";
       $arrSystem["Windows NT 5.1"] = "Windows XP";
       $arrSystem["Windows NT"] = "Windows NT";
       $arrSystem["WinNT"] = "Windows NT";
       $arrSystem["Windows ME"] = "Windows ME";
       $arrSystem["Windows CE"] = "Windows CE";
       $arrSystem["Windows"] = "Windows 95";
       $arrSystem["Mac_68000"] = "Macintosh";
       $arrSystem["Mac_PowerPC"] = "Macintosh";
       $arrSystem["Mac_68K"] = "Macintosh";
       $arrSystem["Mac_PPC"] = "Macintosh";
       $arrSystem["Macintosh"] = "Macintosh";
       $arrSystem["IRIX"] = "Unix";
       $arrSystem["SunOS"] = "Unix";
       $arrSystem["AIX"] = "Unix";
       $arrSystem["Linux"] = "Unix";
       $arrSystem["HP-UX"] = "Unix";
       $arrSystem["SCO_SV"] = "Unix";
       $arrSystem["FreeBSD"] = "Unix";
       $arrSystem["BSD/OS"] = "Unix";
       $arrSystem["OS/2"] = "OS/2";
       $arrSystem["WebTV/1.0"] = "WebTV/1.0";
       $arrSystem["WebTV/1.2"] = "WebTV/1.2";

       $arrBrowser["Lynx"] = "Lynx";
       $arrBrowser["libwww-perl"] = "Lynx";
       $arrBrowser["ia_archiver"] = "Crawler";
       $arrBrowser["ArchitextSpider"] = "Crawler";
       $arrBrowser["Lycos_Spider_(T-Rex)"] = "Crawler";
       $arrBrowser["Scooter"] = "Crawler";
       $arrBrowser["InfoSeek"] = "Crawler";
       $arrBrowser["AltaVista"] = "Crawler";
       $arrBrowser["Eule-Robot"] = "Crawler";
       $arrBrowser["SwissSearch"] = "Crawler";
       $arrBrowser["Checkbot"] = "Crawler";
       $arrBrowser["Crescent Internet ToolPak"] = "Crawler";
       $arrBrowser["Slurp"] = "Crawler";
       $arrBrowser["WiseWire-Widow"] = "Crawler";
       $arrBrowser["NetAttache"] = "Crawler";
       $arrBrowser["Web21 CustomCrawl"] = "Crawler";
       $arrBrowser["CheckUrl"] = "Crawler";
       $arrBrowser["LinkLint-checkonly"] = "Crawler";
       $arrBrowser["Namecrawler"] = "Crawler";
       $arrBrowser["ZyBorg"] = "Crawler";
       $arrBrowser["Googlebot"] = "Crawler";
       $arrBrowser["WebCrawler"] = "Crawler";
       $arrBrowser["WebCopier"] = "Crawler";
       $arrBrowser["JBH Agent 2.0"] = "Crawler";


найдено на dklab.ru


 
Юрий ©   (2006-02-19 21:03) [2]

Прочитав повнимательней, понял, наверное не совсем по теме.


 
БарЛог ©   (2006-02-19 21:05) [3]

Юрий ©   (19.02.06 21:03) [2]
Почему же? Самое то. Спасибо.

Более всего интересует второй вопрос.


 
LexxX ©   (2006-02-19 21:05) [4]

1. Анализируй переменную _SERVER["HTTP_USER_AGENT"]
2. хз :)


 
palva ©   (2006-02-19 21:08) [5]

Клиент посылает информацию в заголовке User-Agent: ...
Сервер берет информацию из переменной окружения HTTP_USER_AGENT

Какие бывают значения? Можно посмотреть здесь:
http://roman.lebedev.com/text/http_user_agent.php
Значение может быть любое, но вы не можете запретить серверу реагировать на эту информацию нестандартным образом.


 
Ученик чародея ©   (2006-02-19 21:11) [6]


> БарЛог ©   (19.02.06 21:05) [3]
> Юрий ©   (19.02.06 21:03) [2]
> Почему же? Самое то. Спасибо.
>
> Более всего интересует второй вопрос.


Ну почему же. Берете версию браузера из переменной окружения и просто выводите в html формате с использование echo или print.

ЗЫ
По PHP в сети есть куча хороших книг, нашару и на русском не или это http://www.intuit.ru/


 
Бугага ©   (2006-02-20 04:57) [7]

Можно передать пхп скрипту параметр


 
БарЛог ©   (2006-02-20 08:12) [8]

Бугага ©   (20.02.06 04:57) [7]
Ды нет, скрипт то как раз мне и не доступен.

Ладно, раскрою карты, есть он-лайн игруха, работает только с интернет эксплорером. Я хочу написать для нее что-то вроде клиента.
Основная проблема в том, что есть либо интернет (на работе), либо делфи - дома :(
Вот, буду выше приведенный скрипт тестировать дома на предмет "обмана".


 
SergP.   (2006-02-20 10:44) [9]


> БарЛог ©   (20.02.06 08:12) [8]
> Бугага ©   (20.02.06 04:57) [7]
> Ды нет, скрипт то как раз мне и не доступен.
>
> Ладно, раскрою карты, есть он-лайн игруха, работает только
> с интернет эксплорером. Я хочу написать для нее что-то вроде
> клиента.


А проблема тогда в чем? Если игре требуется ИЕ, то она в лице TWebbrowser"а она получит тот же самый ИЕ. А если тебе нужно работать не с помощью браузера, то при реализации HTTP-протокола никто ведь не мешает тебе писать в User-Agent все чего душа пожелает...

Я сначала подумал что ты хочешь чтобы браузер (TWebBrowser) в User-Agent выдавал нечно отличное от того что выдает ИЕ... Так х/з.



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2006.03.12;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.51 MB
Время: 0.147 c
2-1140412396
Bratskiy
2006-02-20 08:13
2006.03.12
Выравнивание по ширине строки


2-1140085820
PoetOfDelphi
2006-02-16 13:30
2006.03.12
Когда создать модуль данных


2-1140431364
sanich
2006-02-20 13:29
2006.03.12
В FieldDefs поле Numeric (16.0)


15-1139893762
***___***
2006-02-14 08:09
2006.03.12
Delphi vs. Macromedia Flash MX


2-1140779871
Saveliy
2006-02-24 14:17
2006.03.12
Соединение с интернетом





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский