我不确定我该怎么做。但总的想法是当有人访问我们的脚本时: - http://livescript.phpiscool.com或任何子文件夹
数据库应该是正常的“实时”数据库。
但是当有人试图进入/导航时: - http://livescript.phpiscool.com/beta1 要么 - http://livescript.phpiscool.com/beta2
脚本应该使用不同的数据库(“beta”数据库)......
我们在config.php中有数据库配置,看起来像这样:
<?php
$db_host = "localhost";
$db_username = "tureh_user";
$db_password = "crazypssrd";
$db_name = "database_test";
?>
答案 0 :(得分:0)
$ _ SERVER ['REQUEST_URI']将包含域名之后的第一个斜杠,因此从位置0开始用'/ beta'检查它应该可以完成工作
if(strpos(strtolower($_SERVER['REQUEST_URI']),'/beta') === 0)
{
$db_host = "beta";
}
else
{
$db_host = "localhost";
}
显式比较(===)表示int为0而不是(==),如果找不到匹配,可能会对“false”给出误报
答案 1 :(得分:0)
大多数情况下,这种问题由配置数组处理:
$db['live'] = array(); // Your live configuration
$db['beta'] = array(); // Your beta configuration
$mode = process_url_to_get_mode();
然后,使用$db[$mode]
来实例化您的连接。
这实际上就是CodeIgniter does it。
当然,你可以依靠像Scuzzy这样的功能让你获得$mode
。
答案 2 :(得分:0)
更清洁的解决方案是维护代码库的两个副本,一个用于测试版,一个用于实时版。如果您使用的是源代码控制(如subversion),这是微不足道的,它使用类似于名为“branches”的文件夹的概念(关于Subversion的维基百科文章:http://en.wikipedia.org/wiki/Subversion)。为beta和live提供两份代码的好处是;
如果您使用的是Apache Web服务器,则可以使用Apache VHosts同时运行这两个独立的站点(假设您自己控制服务器); http://httpd.apache.org/docs/2.0/vhosts/examples.html
从长远来看,这是更好的解决方案。