检测正在访问该应用的网址

时间:2014-01-22 05:02:56

标签: php

我目前正在开发一个PHP应用程序(希望)很快就会投入生产使用。

我需要帮助的是检测应用程序访问的URL,即dev.local,testing.domain.com或app.domain.com,然后使用正确的MySQL数据库,即app_test for dev以及生产服务器的测试和app_prod。

除此之外,我还希望能够修改内部网址以匹配(发送的几封电子邮件也需要使用正确的网址进行测试)。

我记得以前看过一些关于它的东西,但我再也找不到它了,所以希望有人能指出我正确的方向。

2 个答案:

答案 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 ..:)