PHP中getenv()和$_SERVER的用法區別:
getenv 取得系統的環境變量,環境變量的格式為name=value。
語法: string getenv(string varname);
返回值: 字符串 函數種類: PHP 系統功能
內容說明
若正確取得環境變量 varname,則返回變量值,失敗則返回 false。
下例可以取得用戶瀏覽器所在機器的網址
<?php $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下也同樣有效。
摘自:http://wanglianghuaihua.blog.163.com/blog/static/54251531201091211275342/