我目前正在开发一个PHP应用程序(希望)很快就会投入生产使用。
我需要帮助的是检测应用程序访问的URL,即dev.local,testing.domain.com或app.domain.com,然后使用正确的MySQL数据库,即app_test for dev以及生产服务器的测试和app_prod。
除此之外,我还希望能够修改内部网址以匹配(发送的几封电子邮件也需要使用正确的网址进行测试)。
我记得以前看过一些关于它的东西,但我再也找不到它了,所以希望有人能指出我正确的方向。
答案 0 :(得分:1)
获取页面的完整网址
function request_url() {
$result = '';
$default_port = 80;
if (isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS']=='on')) {
$result .= 'https://';
$default_port = 443;
} else {
$result .= 'http://';
}
$result .= $_SERVER['SERVER_NAME'];
if ($_SERVER['SERVER_PORT'] != $default_port) {
$result .= ':'.$_SERVER['SERVER_PORT'];
}
$result .= $_SERVER['REQUEST_URI'];
return $result;
}
我认为你就够了:$_SERVER['SERVER_NAME']
答案 1 :(得分:1)
简单的方法......
在constants.php文件中定义环境常量
// constants.php
define('ENVIRONMENT', 'development');
//define('ENVIRONMENT', 'production'); // uncomment this when your going to live your project
在general.php中定义一般函数
// general.php
include "constants.php";
function is_production()
{
if(ENVIRONMENT == "production")
{
return TRUE;
}
return FALSE;
}
function is_development()
{
if(ENVIRONMENT == "development")
{
return TRUE;
}
return FALSE;
}
现在,您可以在数据库连接文件中运行,并选择您的数据库和基本URL
// in db.php
include "general.php";
if(is_production())
{
$conn = mysql_connect("host1","username1","password1");
mysql_select_db("db1",$conn);
define('BASE_URL', 'http://domain.com');
}
else if(is_development())
{
$conn = mysql_connect("host2","username2","password2");
mysql_select_db("db1",$conn);
define('BASE_URL', 'http://testing.domain.com');
}
现在您可以使用该BASE_URL常量并根据需要建立数据库连接 这个概述,但你可以在你的项目中实现你的standered ..:)