php獲取瀏覽器類型及版本號(php獲取瀏覽器類型及版本號的方法)

本文目錄一覽:

php 怎麼獲取瀏覽器的類型?

獲取客戶端瀏覽器、IP地址操作系統類型等的方法(PHP)

=========================

獲取客戶端信息(瀏覽器、IP、OS)

?php

/*

作用:取得客戶端信息

參數:

返回:指定的資料

使用:

$code = new clientGetObj;

1、瀏覽器:$str = $code-getBrowse();

2、IP地址:$str = $code-getIP();

4、操作系統:$str = $code-getOS();

*/

class clientGetObj

{

function getBrowse()

{

global $_SERVER;

$Agent = $_SERVER[‘HTTP_USER_AGENT’];

$browser = ”;

$browserver = ”;

$Browser = array(‘Lynx’, ‘MOSAIC’, ‘AOL’, ‘Opera’, ‘JAVA’, ‘MacWeb’, ‘WebExplorer’, ‘OmniWeb’);

for($i = 0; $i = 7; $i ++){

if(strpos($Agent, $Browsers[$i])){

$browser = $Browsers[$i];

$browserver = ”;

}

}

if(ereg(‘Mozilla’, $Agent) !ereg(‘MSIE’, $Agent)){

$temp = explode(‘(‘, $Agent);

$Part = $temp[0];

$temp = explode(‘/’, $Part);

$browserver = $temp[1];

$temp = explode(‘ ‘, $browserver);

$browserver = $temp[0];

$browserver = preg_replace(‘/([d.]+)/’, ‘\1’, $browserver);

$browserver = $browserver;

$browser = ‘Netscape Navigator’;

}

if(ereg(‘Mozilla’, $Agent) ereg(‘Opera’, $Agent)) {

$temp = explode(‘(‘, $Agent);

$Part = $temp[1];

$temp = explode(‘)’, $Part);

$browserver = $temp[1];

$temp = explode(‘ ‘, $browserver);

$browserver = $temp[2];

$browserver = preg_replace(‘/([d.]+)/’, ‘\1’, $browserver);

$browserver = $browserver;

$browser = ‘Opera’;

}

if(ereg(‘Mozilla’, $Agent) ereg(‘MSIE’, $Agent)){

$temp = explode(‘(‘, $Agent);

$Part = $temp[1];

$temp = explode(‘;’, $Part);

$Part = $temp[1];

$temp = explode(‘ ‘, $Part);

$browserver = $temp[2];

$browserver = preg_replace(‘/([d.]+)/’,’\1′,$browserver);

$browserver = $browserver;

$browser = ‘Internet Explorer’;

}

if($browser != ”){

$browseinfo = $browser.’ ‘.$browserver;

} else {

$browseinfo = false;

}

return $browseinfo;

}

function getIP ()

{

global $_SERVER;

if (getenv(‘HTTP_CLIENT_IP’)) {

$ip = getenv(‘HTTP_CLIENT_IP’);

} else if (getenv(‘HTTP_X_FORWARDED_FOR’)) {

$ip = getenv(‘HTTP_X_FORWARDED_FOR’);

} else if (getenv(‘REMOTE_ADDR’)) {

$ip = getenv(‘REMOTE_ADDR’);

} else {

$ip = $_SERVER[‘REMOTE_ADDR’];

}

return $ip;

}

function getOS ()

{

global $_SERVER;

$agent = $_SERVER[‘HTTP_USER_AGENT’];

$os = false;

if (eregi(‘win’, $agent) strpos($agent, ’95’)){

$os = ‘Windows 95’;

}

else if (eregi(‘win 9x’, $agent) strpos($agent, ‘4.90’)){

$os = ‘Windows ME’;

}

else if (eregi(‘win’, $agent) ereg(’98’, $agent)){

$os = ‘Windows 98’;

}

else if (eregi(‘win’, $agent) eregi(‘nt 5.1’, $agent)){

$os = ‘Windows XP’;

}

else if (eregi(‘win’, $agent) eregi(‘nt 5’, $agent)){

$os = ‘Windows 2000’;

}

else if (eregi(‘win’, $agent) eregi(‘nt’, $agent)){

$os = ‘Windows NT’;

}

else if (eregi(‘win’, $agent) ereg(’32’, $agent)){

$os = ‘Windows 32’;

}

else if (eregi(‘linux’, $agent)){

$os = ‘Linux’;

}

else if (eregi(‘unix’, $agent)){

$os = ‘Unix’;

}

else if (eregi(‘sun’, $agent) eregi(‘os’, $agent)){

$os = ‘SunOS’;

}

else if (eregi(‘ibm’, $agent) eregi(‘os’, $agent)){

$os = ‘IBM OS/2’;

}

else if (eregi(‘Mac’, $agent) eregi(‘PC’, $agent)){

$os = ‘Macintosh’;

}

else if (eregi(‘PowerPC’, $agent)){

$os = ‘PowerPC’;

}

else if (eregi(‘AIX’, $agent)){

$os = ‘AIX’;

}

else if (eregi(‘HPUX’, $agent)){

$os = ‘HPUX’;

}

else if (eregi(‘NetBSD’, $agent)){

$os = ‘NetBSD’;

}

else if (eregi(‘BSD’, $agent)){

$os = ‘BSD’;

}

else if (ereg(‘OSF1’, $agent)){

$os = ‘OSF1’;

}

else if (ereg(‘IRIX’, $agent)){

$os = ‘IRIX’;

}

else if (eregi(‘FreeBSD’, $agent)){

$os = ‘FreeBSD’;

}

else if (eregi(‘teleport’, $agent)){

$os = ‘teleport’;

}

else if (eregi(‘flashget’, $agent)){

$os = ‘flashget’;

}

else if (eregi(‘webzip’, $agent)){

$os = ‘webzip’;

}

else if (eregi(‘offline’, $agent)){

$os = ‘offline’;

}

else {

$os = ‘Unknown’;

}

return $os;

}

}

?

獲取IP地址

說明:使用 Request.ServerVariables(“REMOTE_ADDR”) 來取得客戶端的 IP 地址,但如果客戶端是使用代理服務器來訪問,那取到的就是代理服務器的 IP 地址,而不是真正的客戶端 IP 地址。要想透過代理服務器取得客戶端的真實IP 地址,就要使用Request.ServerVariables(“HTTP_X_FORWARDED_FOR”) 來讀取。不過要注意的事,並不是每個代理服務器都能用 Request.ServerVariables(“HTTP_X_FORWARDED_FOR”) 來讀取客戶端的真實 IP,有些用此方法讀取到的仍然是代理服務器的 IP。

還有一點需要注意的是:如果客戶端沒有通過代理服務器來訪問,那麼用 Request.ServerVariables(“HTTP_X_FORWARDED_FOR”) 取到的值將是空的。因此,如果要在程序中使用此方法,可以這樣處理:

……

userip = Request.ServerVariables(“HTTP_X_FORWARDED_FOR”)

If userip = “” Then userip = Request.ServerVariables(“REMOTE_ADDR”)

……

即:如果客戶端通過代理服務器,則取 HTTP_X_FORWARDED_FOR 的值,如果沒通過代理服務器,就取 REMOTE_ADDR 的值。

方法一:

function real_ip($type)

{

if ($_SERVER[“HTTP_X_FORWARDED_FOR”])

{

if ($_SERVER[“HTTP_CLIENT_IP”])

{

$proxy = $_SERVER[“HTTP_CLIENT_IP”];

}

else

{

$proxy = $_SERVER[“REMOTE_ADDR”];

}

$ip = $_SERVER[“HTTP_X_FORWARDED_FOR”];

}

else

{

if ($_SERVER[“HTTP_CLIENT_IP”])

{

$ip = $_SERVER[“HTTP_CLIENT_IP”];

}

else

{

$ip = $_SERVER[“REMOTE_ADDR”];

}

}

if($type==’ip’)return $ip;

if($type==’proxy’)return $proxy;

}

方法二:

?

function iptype1 () {

if (getenv(“HTTP_CLIENT_IP”)) {

?return getenv(“HTTP_CLIENT_IP”);

}

else {

?return “none”;

}

}

function iptype2 () {

if (getenv(“HTTP_X_FORWARDED_FOR”)) {

?return getenv(“HTTP_X_FORWARDED_FOR”);

}

else {

?return “none”;

}

}

function iptype3 () {

if (getenv(“REMOTE_ADDR”)) {

?return getenv(“REMOTE_ADDR”);

}

else {

?return “none”;

}

}

function ip() {

$ip1 = iptype1();

$ip2 = iptype2();

$ip3 = iptype3();

if (isset($ip1) $ip1 != “none” $ip1 != “unknown”) {

?return $ip1;

}

elseif (isset($ip2) $ip2 != “none” $ip2 != “unknown”) {

?return $ip2;

}

elseif (isset($ip3) $ip3 != “none” $ip3 != “unknown”) {

?return $ip3;

}?

else {

return “none”;

}

}

Echo ip();

?

方法三:

01 : function ipCheck() {

02 : if (getenv( ‘HTTP_CLIENT_IP’ )) {

03 : $ip = getenv( ‘HTTP_CLIENT_IP’ );

04 : }

05 : elseif (getenv( ‘HTTP_X_FORWARDED_FOR’ )) {

06 : $ip = getenv( ‘HTTP_X_FORWARDED_FOR’ );

07 : }

08 : elseif (getenv( ‘HTTP_X_FORWARDED’ )) {

09 : $ip = getenv( ‘HTTP_X_FORWARDED’ );

10 : }

11 : elseif (getenv( ‘HTTP_FORWARDED_FOR’ )) {

12 : $ip = getenv( ‘HTTP_FORWARDED_FOR’ );

13 : }

14 : elseif (getenv( ‘HTTP_FORWARDED’ )) {

15 : $ip = getenv( ‘HTTP_FORWARDED’ );

16 : }

17 : else {

18 : $ip = $_SERVER[ ‘REMOTE_ADDR’ ];

19 : }

20 : return $ip;

21 : }

如何查看php版本信息

Php的版本控制一直也是一個比較棘手的問題,因為版本不同導致有許多功能不能很好的實現,所以當程序上傳到空間的時候一定要對版本進行有效的控制,這樣可以避免不必要的麻煩產生。那麼如何查看當前你的php版本呢?下面提供兩種方法幫你查看你的php版本。

使用phpinfo()函數,該函數就是用來顯示php服務器的配置信息,在你的環境下創建一個php文件,在裡面數據下面代碼,然後執行就會打印出下面結果,可以清楚的看到,你當前php的版本,已經php、apache、mysql等配置信息。

?php

Phpinfo();

?

使用phpsersion()函數,這個函數的原型是string phpversion(void);返回的一個string,本函數是返回php版本信息,創建一個php文件,輸入以下代碼,就可以在瀏覽器中看到返回的php的版本信息了。

?php

echo phpversion();

?

PHP怎麼獲取系統信息和服務器詳細信息

獲取系統類型及版本號: php_uname() (例:Windows NT COMPUTER 5.1 build 2600)

只獲取系統類型: php_uname(‘s’) (或:PHP_OS,例:Windows NT)

只獲取系統版本號: php_uname(‘r’) (例:5.1)

獲取PHP運行方式: php_sapi_name() (PHP run mode:apache2handler)

獲取前進程用戶名: Get_Current_User()

獲取PHP版本: PHP_VERSION

獲取Zend版本: Zend_Version()

獲取PHP安裝路徑: DEFAULT_INCLUDE_PATH

獲取當前文件絕對路徑: __FILE__

獲取Http請求中Host值: $_SERVER[“HTTP_HOST”] (返回值為域名或IP)

獲取服務器IP: GetHostByName($_SERVER[‘SERVER_NAME’])

接受請求的服務器IP: $_SERVER[“SERVER_ADDR”] (有時候獲取不到,推薦用:GetHostByName($_SERVER[‘SERVER_NAME’]))

獲取客戶端IP: $_SERVER[‘REMOTE_ADDR’]

獲取服務器解譯引擎: $_SERVER[‘SERVER_SOFTWARE’]

獲取服務器CPU數量: $_SERVER[‘PROCESSOR_IDENTIFIER’]

獲取服務器系統目錄: $_SERVER[‘SystemRoot’]

獲取服務器域名: $_SERVER[‘SERVER_NAME’] (建議使用:$_SERVER[“HTTP_HOST”])

獲取用戶域名: $_SERVER[‘USERDOMAIN’]

獲取服務器語言: $_SERVER[‘HTTP_ACCEPT_LANGUAGE’]

獲取服務器Web端口: $_SERVER[‘SERVER_PORT’]

訪問用戶的瀏覽器信息: $_SERVER[‘HTTP_USER_AGENT’];

script language=”JavaScript”

document.write(“瀏覽器名稱: “+navigator.appName+”br”);

document.write(“瀏覽器版本號: “+navigator.appVersion+”br”);

document.write(“系統語言: “+navigator.systemLanguage+”br”);

document.write(“系統平台: “+navigator.platform+”br”);

document.write(“瀏覽器是否支持cookie: “+navigator.cookieEnabled+”br”);

/script

怎麼查看PHP版本信息

Php的版本控制一直也是一個比較棘手的問題,因為版本不同導致有許多功能不能很好的實現,所以當程序上傳到空間的時候一定要對版本進行有效的控制,這樣可以避免不必要的麻煩產生。那麼如何查看當前你的php版本呢?下面提供兩種方法幫你查看你的php版本。

使用phpinfo()函數,該函數就是用來顯示php服務器的配置信息,在你的環境下創建一個php文件,在裡面數據下面代碼,然後執行就會打印出下面結果,可以清楚的看到,你當前php的版本,已經php、apache、mysql等配置信息。

?php

Phpinfo();

?

使用phpsersion()函數,這個函數的原型是string phpversion(void);返回的一個string,本函數是返回php版本信息,創建一個php文件,輸入以下代碼,就可以在瀏覽器中看到返回的php的版本信息了。

?php

echo phpversion();

?

用PHP怎麼判斷用戶所用瀏覽器以及瀏覽器版本

?php

/** +——————————————–+

Author: Paul

Copyright (c) 16/3/2011

+——————————————–+ */

if (strpos($_SERVER[‘HTTP_USER_AGENT’], ‘Maxthon’)) {

$browser = ‘Maxthon’;

} elseif(strpos($_SERVER[‘HTTP_USER_AGENT’], ‘MSIE 8.0’)) {

$browser = ‘MSIE 8.0’;

} elseif(strpos($_SERVER[‘HTTP_USER_AGENT’], ‘MSIE 7.0’)) {

$browser = ‘MSIE 7.0’;

} elseif(strpos($_SERVER[‘HTTP_USER_AGENT’], ‘MSIE 6.0’)) {

$browser = ‘MSIE 6.0’;

} elseif(strpos($_SERVER[‘HTTP_USER_AGENT’], ‘NetCaptor’)) {

$browser = ‘NetCaptor’;

} elseif(strpos($_SERVER[‘HTTP_USER_AGENT’], ‘Netscape’)) {

$browser = ‘Netscape’;

} elseif(strpos($_SERVER[‘HTTP_USER_AGENT’], ‘Lynx’)) {

$browser = ‘Lynx’;

} elseif(strpos($_SERVER[‘HTTP_USER_AGENT’], ‘Opera’)) {

$browser = ‘Opera’;

} elseif(strpos($_SERVER[‘HTTP_USER_AGENT’], ‘Konqueror’)) {

$browser = ‘Konqueror’;

} elseif(strpos($_SERVER[‘HTTP_USER_AGENT’], ‘Firefox’)) {

$browser = ‘Firefox’;

} elseif(strpos($_SERVER[‘HTTP_USER_AGENT’],’Safari’)) {

$browser = ‘Safari’;

} else {

$browser = ‘other’;

}

echo $browser;

?

php怎麼獲取瀏覽器的類型?

可以使用預定義變量:

$_SERVER[‘HTTP_USER_AGENT’]

返回如下:

Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.77 Safari/535.7

php,“超文本預處理器”是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域。PHP 獨特的語法混合了C、Java、Perl以及PHP自創的語法。它可以比CGI或者Perl更快速地執行動態網頁。用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML(標準通用標記語言下的一個應用)文檔中去執行,執行效率比完全生成HTML標記的CGI要高許多;PHP還可以執行編譯後代碼,編譯可以達到加密和優化代碼運行,使代碼運行更快。

原創文章,作者:QJGJU,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/130908.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
QJGJU的頭像QJGJU
上一篇 2024-10-03 23:27
下一篇 2024-10-03 23:27

相關推薦

  • int類型變量的細節與注意事項

    本文將從 int 類型變量的定義、聲明、初始化、範圍、運算和類型轉換等方面,對 int 類型變量進行詳細闡述和講解,幫助讀者更好地掌握和應用 int 變量。 一、定義與聲明 int…

    編程 2025-04-29
  • ArcGIS更改標註位置為中心的方法

    本篇文章將從多個方面詳細闡述如何在ArcGIS中更改標註位置為中心。讓我們一步步來看。 一、禁止標註智能調整 在ArcMap中設置標註智能調整可以自動將標註位置調整到最佳顯示位置。…

    編程 2025-04-29
  • 解決.net 6.0運行閃退的方法

    如果你正在使用.net 6.0開發應用程序,可能會遇到程序閃退的情況。這篇文章將從多個方面為你解決這個問題。 一、代碼問題 代碼問題是導致.net 6.0程序閃退的主要原因之一。首…

    編程 2025-04-29
  • Python中init方法的作用及使用方法

    Python中的init方法是一個類的構造函數,在創建對象時被調用。在本篇文章中,我們將從多個方面詳細討論init方法的作用,使用方法以及注意點。 一、定義init方法 在Pyth…

    編程 2025-04-29
  • Python創建分配內存的方法

    在python中,我們常常需要創建並分配內存來存儲數據。不同的類型和數據結構可能需要不同的方法來分配內存。本文將從多個方面介紹Python創建分配內存的方法,包括列表、元組、字典、…

    編程 2025-04-29
  • 使用Vue實現前端AES加密並輸出為十六進制的方法

    在前端開發中,數據傳輸的安全性問題十分重要,其中一種保護數據安全的方式是加密。本文將會介紹如何使用Vue框架實現前端AES加密並將加密結果輸出為十六進制。 一、AES加密介紹 AE…

    編程 2025-04-29
  • Python中讀入csv文件數據的方法用法介紹

    csv是一種常見的數據格式,通常用於存儲小型數據集。Python作為一種廣泛流行的編程語言,內置了許多操作csv文件的庫。本文將從多個方面詳細介紹Python讀入csv文件的方法。…

    編程 2025-04-29
  • 用不同的方法求素數

    素數是指只能被1和自身整除的正整數,如2、3、5、7、11、13等。素數在密碼學、計算機科學、數學、物理等領域都有着廣泛的應用。本文將介紹幾種常見的求素數的方法,包括暴力枚舉法、埃…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變量時顯示的指定變量類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • Python學習筆記:去除字符串最後一個字符的方法

    本文將從多個方面詳細闡述如何通過Python去除字符串最後一個字符,包括使用切片、pop()、刪除、替換等方法來實現。 一、字符串切片 在Python中,可以通過字符串切片的方式來…

    編程 2025-04-29

發表回復

登錄後才能評論