0

我的目标是让多个站点运行相同的文件,但有一组变量来确定要访问的数据库:

<?php 

$siteDB = "this";
$domainName = "thisdomain";
$twitterName = "thistwitter";
$facebookName = "thisfacebook";

include 'http://www.mysite.com/site_files/index.php'; 

?>

当我尝试访问它们中的变量时,site_files/index.php它们返回 NULL。我也尝试过使用$GLOBALS['siteDB'],但没有运气,这并不让我感到惊讶。

我知道有几个与此类似的问题,但我也想问这是否是最好的方法。我应该使用某种类型的配置文件还是会话变量?


我的网站文件组织如下:

www.mysite.com/site1

www.mysite.com/site2

www.mysite.com/site3

www.mysite.com/site4


这些站点的文件位于:

www.mysite.com/site_files


当文件更新时,因为所有站点都访问同一个文件,所以它们都会更新。上面的文件将位于:

www.mysite.com/siteX/index.php

4

4 回答 4

0

制作一个配置文件,并将其包含在您的其他文件中。

配置文件示例:

$config = array('site' => "this",
 'domain' =>  "thisdomain",
  'twitter' => "thistwitter",
 'facebook' => 'thisfacebook'
);
于 2012-11-06T16:46:46.073 回答
0

我认为是 $GLOBALS['siteDB'] 而不是 $GLOBAL['siteDB']

于 2012-11-06T16:53:38.690 回答
0

我最终通过使用绝对 URL 开始工作。

代替:

<?php 

$siteDB = "this";
$domainName = "thisdomain";
$twitterName = "thistwitter";
$facebookName = "thisfacebook";

include 'http://www.mysite.com/site_files/index.php'; 

?>


我被建议使用:

<?php 

include $_SERVER['DOCUMENT_ROOT'].'/site1/config.php'; 
include $_SERVER['DOCUMENT_ROOT'].'/site_files/index.php'; 

?>

其中/site1/config.php包含:

$siteDB = "this";
$domainName = "thisdomain";
$twitterName = "thistwitter";
$facebookName = "thisfacebook";
于 2012-11-07T01:29:59.917 回答
0

由于没有一个答案可以解释实际问题是什么,因此尽管问题已经解决,但我会尝试一下。

当您使用:

include 'http://www.mysite.com/site_files/index.php'; 

您的服务器向地址发出 http 请求www.mysite.com/site_files/index.php,就像您请求页面时浏览器所做的一样。

上的服务器mysite.com将简单地解析其 php 并返回结果。此结果将包含在您的脚本中,但它不会(可能...)包含 php 代码,而是包含来自/site_files/index.php.

如果您想将变量传递给您请求的 url,您可以使用:

include 'http://www.mysite.com/site_files/index.php?var1=some_value;etc=value';

但这可能不是您想要的,因为如果所有文件都驻留在同一个文件系统上,它会使您的设置不必要地复杂化。

最重要的是,如果您想包含一个 php 脚本,请不要从 Web 服务器请求它,而是从文件系统请求它。

于 2012-11-07T01:51:02.680 回答