首頁 >後端開發 >PHP問題 >php中getenv和server有什麼差別

php中getenv和server有什麼差別

WBOY
WBOY原創
2022-08-26 16:48:351574瀏覽

php中getenv和server的差異:1、getenv可取得系統的環境變量,語法為“string getenv(string varname)”,而“$_SERVER”是伺服器超級全域變數數組;2、getenv不支援IIS的isapi方式運行的PHP,「$_SERVER」支援。

php中getenv和server有什麼差別

本文操作環境:Windows10系統、PHP8.1版、Dell G3電腦

php中getenv和server有什麼差別

PHP中getenv()和$_SERVER的用法差異:

getenv取得系統的環境變量,環境變數的格式為name=value。

語法: 

string getenv(string varname);

傳回值: 字串函數種類: PHP 系統功能

內容說明

若正確取得環境變數varname,則傳回變數值,失敗則傳回false。

下例可以取得使用者瀏覽器所在機器的網址

$ip = getenv(“REMOTE_ADDR”);
?>

$_SERVER是伺服器超級全域變數數組用$_SERVER['REMOTE_ADDR']同樣可以取得***端的IP位址。

二者的差別在於,getenv不支援IIS的isapi方式運行的PHP。

擴充知識

解決PHP取得不到ip位址`函數getenv(“REMOTE_ADDR”)$_SERVER['REMOTE_ADDR']的區別

最近用PHP幫朋友寫了個用於投票的頁面,一切都很順利,裝上後發現:訪客IP地址沒能記錄上(沒能成功取得IP位址),怪事,當初本地測試都好的呀。難不成本地和伺服器有別,馬上開個空間,測試,仍然一切正常。再一個問題都排除後,了解到對方是windows下的iis,而自己測試都在apache上,很可能是這個原因。

馬上更換函數:將原來的ip位址取得函數」getenv(“REMOTE_ADDR”)「更換為」$_SERVER['REMOTE_ADDR']“,覆蓋更新,再看資料庫,ip位址已經成功記錄,搞定。

既然再次遇到這問題,就還是記錄下吧:PHP中取得訪客(***端)的ip位址函數getenv(“REMOTE_ADDR”) 與$_SERVER['REMOTE_ADDR']的區別,其實,透過這件事,已經很清楚了。 getenv(“REMOTE_ADDR”)函數在apache下能正常取得ip位址,而在iis中,一點作用都沒,而$_SERVER['REMOTE_ADDR']函數,既可在apache中成功取得訪客的ip位址,在iis下方也同樣有效。

推薦學習:《PHP影片教學

以上是php中getenv和server有什麼差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn