本文目錄一覽:
怎樣用php獲取用戶瀏覽器,操作系統,本地天氣
$_SERVER[‘HTTP_USER_AGENT’] 可以獲取用戶的操作系統和瀏覽器,不過客戶端傳過來的數據,用戶可以偽造
獲取天氣得調用別人的介面,新浪,中國氣象網都提供介面,你調用就可以了
PHP中怎麼獲取瀏覽器地址?
我想樓主應該是要全部的地址吧,例「 」如果是這樣的話,我有個建議,就是在你要進這個頁面的時候,再連接的時候寫一個隱藏欄位傳過來個這個地址不就行了嗎,可以寫一個JS的函數function href(a){ return a.href;}或者別的方法,我上面寫的不對,我只是說個大概意思,不知道對你有沒有幫助!
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怎麼獲取瀏覽器的類型?
可以使用預定義變數:
$_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還可以執行編譯後代碼,編譯可以達到加密和優化代碼運行,使代碼運行更快。
php 如何獲取伺服器的信息
伺服器變數 $_SERVER 詳解:
1、$_SESSION[‘PHP_SELF’] — 獲取當前正在執行腳本的文件名
2、$_SERVER[‘SERVER_PROTOCOL’] — 請求頁面時通信協議的名稱和版本。例如,「HTTP/1.0」。
3、$_SERVER[‘REQUEST_TIME’] — 請求開始時的時間戳。從 PHP 5.1.0 起有效。和time函數效果一樣。
4、$_SERVER[‘argv’] — 傳遞給該腳本的參數。我試了下,get方法可以得到$_SERVER[‘argv’][0];post方法無法給他賦值。
5、$_SERVER[‘SERVER_NAME’] — 返回當前主機名。
6、$_SERVER[‘SERVER_SOFTWARE’] — 伺服器標識的字串,在響應請求時的頭信息中給出。 如Microsoft-IIS/6.0
7、$_SERVER[‘REQUEST_METHOD’] — 訪問頁面時的請求方法。例如:「GET」、「HEAD」,「POST」,「PUT」。
8、$_SERVER[‘QUERY_STRING’] — 查詢(query)的字元串(URL 中第一個問號 ? 之後的內容)。
9、$_SERVER[‘DOCUMENT_ROOT’] — 當前運行腳本所在的文檔根目錄。在伺服器配置文件中定義。 如E:\server
10、$_SERVER[‘HTTP_ACCEPT’] — 當前請求的 Accept: 頭信息的內容。
11、$_SERVER[‘HTTP_ACCEPT_CHARSET’] — 當前請求的 Accept-Charset: 頭信息的內容。例如:「iso-8859-1,*,utf-8」。
12、$_SERVER[‘HTTP_ACCEPT_ENCODING’] — 當前請求的 Accept-Encoding: 頭信息的內容。例如:「gzip」。
13、$_SERVER[‘HTTP_ACCEPT_LANGUAGE’] — 當前請求的 Accept-Language: 頭信息的內容。例如:「en」。
14、$_SERVER[‘HTTP_CONNECTION’] — 當前請求的 Connection: 頭信息的內容。例如:「Keep-Alive」。
15、$_SERVER[‘HTTP_HOST’] — 當前請求的 Host: 頭信息的內容。
16、$_SERVER[‘HTTP_REFERER’] — 鏈接到當前頁面的前一頁面的 URL 地址。
17、$_SERVER[‘HTTP_USER_AGENT’] — 返回用戶使用的瀏覽器信息。也可以使用 get_browser() 得到此信息。
18、$_SERVER[‘HTTPS’] — 如果通過https訪問,則被設為一個非空的值,否則返回off.
19、$_SERVER[‘REMOTE_ADDR’] — 正在瀏覽當前頁面用戶的 IP 地址。
20、$_SERVER[‘REMOTE_HOST’] — 正在瀏覽當前頁面用戶的主機名。反向域名解析基於該用戶的 REMOTE_ADDR。如本地測試返回127.0.0.1
21、$_SERVER[‘REMOTE_PORT’] — 用戶連接到伺服器時所使用的埠。我在本機測試沒通過,不知道什麼原因。
22、$_SERVER[‘SCRIPT_FILENAME’] — 當前執行腳本的絕對路徑名。如返回E:\server\index.php
23、$_SERVER[‘SERVER_ADMIN’] — 該值指明了 Apache 伺服器配置文件中的 SERVER_ADMIN 參數。如果腳本運行在一個虛擬主機上,則該值是那個虛擬主機的值
24、$_SERVER[‘SERVER_PORT’] — 伺服器所使用的埠。默認為「80」。如果使用 SSL 安全連接,則這個值為用戶設置的 HTTP 埠。
25、$_SERVER[‘SERVER_SIGNATURE’] — 包含伺服器版本和虛擬主機名的字元串。
26、$_SERVER[‘PATH_TRANSLATED’] — 當前腳本所在文件系統(不是文檔根目錄)的基本路徑。這是在伺服器進行虛擬到真實路徑的映像後的結果。 Apache 2 用 戶可以使用 httpd.conf 中的 AcceptPathInfo On 來定義 PATH_INFO。
27、$_SERVER[‘SCRIPT_NAME’] — 包含當前腳本的路徑。這在頁面需要指向自己時非常有用。__FILE__ 包含當前文件的絕對路徑和文件名(例如包含文件)。
28、$_SERVER[‘REQUEST_URI’] — 訪問此頁面所需的 URI。例如,「/index.html」。
29、$_SERVER[‘PHP_AUTH_DIGEST’] — 當作為 Apache 模塊運行時,進行 HTTP Digest 認證的過程中,此變數被設置成客戶端發送的「Authorization」HTTP 頭內容(以便作進一步的認證操作)。
30、$_SERVER[‘PHP_AUTH_USER’]– 當 PHP 運行在 Apache 或 IIS(PHP 5 是 ISAPI)模塊方式下,並且正在使用 HTTP 認證功能,這個變數便是用戶輸入的用戶名。
31、$_SERVER[‘PHP_AUTH_PW’] — 當 PHP 運行在 Apache 或 IIS(PHP 5 是 ISAPI)模塊方式下,並且正在使用 HTTP 認證功能,這個變數便是用戶輸入的密碼。
32、$_SERVER[‘AUTH_TYPE’]–當 PHP 運行在 Apache 模塊方式下,並且正在使用 HTTP 認證功能,這個變數便是認證的類型。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/303760.html