2014-01-06 35 views
0

幾年來,我一直在使用通常建議的方法來檢查是否一個頁面被檢查本地或遠程調用$_SERVER['SERVER_ADDR']是否等於127.0.0.1或者是空的。其他問題已經討論過,例如thisthis。其他超全球植物如$_SERVER['REMOTE_ADDR']也經常被提及。更好的方法來檢查,如果腳本開發服務器或督促服務器上運行

隨着時間的推移,我發現這種方法有時似乎失敗了。

我真正想知道的是腳本是否已被調用我的dev的服務器(XAMPP,WAMP,IDE調試器...)或在生產服務器上。這樣就可以正確設置Web根目錄上的腳本路徑。雖然這可以工作99.999%,但有時候,當Apache重定向到404頁時,$_SERVER['SERVER_ADDR']必須丟失,並且在生產服務器上運行的腳本通過「本地」測試。

因此,我正在尋找其他方法。當然,我可能在Apache中做了一些錯誤的事情,但無論如何,在PHP中進行一個簡單的測試都是非常好的。

一對夫婦的想法來找我,我不知道這是否是安全的,或者是否有人有更好的主意。

A.一個想法是看看當前路徑:像

define ('DEV_SERVER', 

      (substr(

        strtolower($_SERVER['DOCUMENT_ROOT']), 

        0,8) 

      =="c:/xampp") 
); 

B.另一個想法是要檢查有特定名稱的本地文件的存在,但碰到文件系統似乎工作太多了。

在此先感謝您的所有見解!

+0

只需定義一個相應的環境變量(在你的apache虛擬主機配置中) – zerkms

回答

0

你也可以嘗試gethostname()。

雖然,最好的方法可能是隻部署開發具體的東西到dev的服務器。即將這些腳本與生產/迴歸測試腳本分開。您不希望這些DEV服務器特定的內容不小心變得對用戶可見。

相關問題