我的目标是让多个站点运行相同的文件,但有一组变量来确定要访问的数据库:
<?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
答案 0 :(得分:0)
制作配置文件,并将其包含在其他文件中。
配置文件示例:
$config = array('site' => "this",
'domain' => "thisdomain",
'twitter' => "thistwitter",
'facebook' => 'thisfacebook'
);
答案 1 :(得分:0)
我认为这是$ GLOBALS ['siteDB']而不是$ GLOBAL ['siteDB']
答案 2 :(得分:0)
我最终使用绝对网址开始工作。
而不是:
<?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";
答案 3 :(得分:0)
由于没有一个答案解释了实际问题是什么,我会试一试,虽然问题已经解决了。
使用时:
include 'http://www.mysite.com/site_files/index.php';
您的服务器向地址www.mysite.com/site_files/index.php
发出http请求,就像浏览器请求页面时一样。
mysite.com
上的服务器将简单地解析其php并返回结果。此结果将包含在您的脚本中,但它不会(可能......)包含PHP代码,但是由/site_files/index.php
生成的html字符串。
如果您想将变量传递给您请求的网址,可以使用:
include 'http://www.mysite.com/site_files/index.php?var1=some_value;etc=value';
但这可能不是您想要的,因为如果所有文件都驻留在同一个文件系统中,它会不必要地使您的设置复杂化。
最重要的是,如果你想要包含一个php脚本,请不要从web服务器请求它,而是从文件系统请求它。