php中getenv和server的差異:1、getenv可取得系統的環境變量,語法為“string getenv(string varname)”,而“$_SERVER”是伺服器超級全域變數數組;2、getenv不支援IIS的isapi方式運行的PHP,「$_SERVER」支援。
本文操作環境:Windows10系統、PHP8.1版、Dell G3電腦
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中文網其他相關文章!