我想为本地和离线提供不同的配置。目前,每次我将我的东西上传到Web服务器时,我都必须确保我不会弄乱不同的配置文件。一个用于本地开发,一个用于在线。有条件配置:如何检测我是本地还是联机?
我稍微记得几年前,在线和本地开发之间自动区分的代码片段。
有没有安全的方法来检测?
我想为本地和离线提供不同的配置。目前,每次我将我的东西上传到Web服务器时,我都必须确保我不会弄乱不同的配置文件。一个用于本地开发,一个用于在线。有条件配置:如何检测我是本地还是联机?
我稍微记得几年前,在线和本地开发之间自动区分的代码片段。
有没有安全的方法来检测?
我通常使用服务器名称,例如,下面是我用我的博客:
if ($_SERVER['SERVER_NAME'] === 'blog') {
// Development
} else {
// Production
}
这是因为:
http://blog
(闲来无事后)访问,使用VirtualHost
与ServerName
指令。ServerName
指令比这长一点,包含实际的博客服务器名称。另一种方法:设置.htacces文件在你的开发根:
SetEnv APPLICATION_ENV development
然后阅读:
defined('APPLICATION_ENV')
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV')
? getenv('APPLICATION_ENV')
: 'production'));
我的回答是基本相同帕斯卡此页面上,但由于您可能会更改您的开发服务器名称,并且您可能需要在代码中执行几次此类检查,所以我更愿意这样做:
define ('DEV_HOST', 'blog'); // if you just use http://blog locally
再检查
if ($_SERVER['SERVER_NAME'] == DEV_HOST) {
// do your tricks
}
好点之前伊利亚 – Hexodus 2013-11-23 08:40:40
这里是需要零配置和应该工作非常快的解决方案:
function isOnline()
{
return checkdnsrr('google.com', 'ANY');
}
我建立这个功能,它检查当前服务器名称有名服务器记录,通常本地服务器没有。
<?php
function isLocal()
{
return !checkdnsrr($_SERVER['SERVER_NAME'], 'NS');
}
?>
打我吧....再由xD – Gordon 2010-01-09 23:19:45
据接近:我已经回答了不到一分钟,你^^ – 2010-01-09 23:20:46