在包含的文件中使用外部变量(PHP)

时间:2012-11-06 16:44:42

标签: php variables include

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

<?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 个答案:

答案 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服务器请求它,而是从文件系统请求它。