php包括wamp

时间:2013-04-01 15:24:40

标签: php include wamp

我正在我的本地wamp堆栈上开发一个站点。我创建了一个别名来查看该网站,因此我转到localhost/eee/进行查看。理想情况下,我想转到www.eee.lo,但自升级到win8以来,我无法让它发挥作用。

所以这就是问题所在,我正在为网站制作模块,所以我不需要更改所有代码等...而且我不想在迁移时不得不改变所有的URL到在线服务器所以我正在创建一个名为_control.php的文件,它有这个;

$_SITELOC = "localhost/eee/";

然后每次我想要包含一个文件我都会去;

include "$_SITELOC/scripts/inc/_header.php";

但是这不起作用,我无法解决为什么好像我echo而不是include它然后我接受它打印的内容并将其放入网址正确的文件。但它会在包含上引发错误,它会给出两个警告;

Warning: include(localhost/eee/scripts/inc/_header.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory in C:\Users\Chris\Documents\EEE\Website\Site\index.php on line 3

Warning: include() [<a href='function.include'>function.include</a>]: Failed opening 'localhost/eee/scripts/inc/_header.php' for inclusion (include_path='.;C:\php\pear') in C:\Users\Chris\Documents\EEE\Website\Site\index.php on line 3

我在某处读到可能与包含路径有关,所以我试过了;

set_include_path(get_include_path() . PATH_SEPARATOR . $_SITELOC."/scripts/inc/");

但这也没有用,现在我不知道该往哪里去。

谢谢,克里斯

3 个答案:

答案 0 :(得分:2)

localhost/eee/是您可以在网络浏览器中使用的公共地址。该公共地址应更恰当地写为http://localhost/eee/。当您转到Web服务器时,您将获得公共地址http://www.eee.lo/

包含文件时,必须使用文件路径。例如,如果您在Windows上的D:\中拥有www(或httpd,无论如何),那么您的包含路径应​​该以{{1​​}}开头。

所以,基本上你必须使用两个变量来保留路径。

D:\www\eee\

在实践中,您将需要这两者,并且最好将网站地址和内部路径保留在主脚本之外,因为当上传到远程服务器时,不仅您的公共地址发生了变化,而且您还会处理完全不同的内部(包含)路径。

答案 1 :(得分:1)

你的想法基本上是好的,定义应用程序的一个(根)路径并包含基于它的文件,但不幸的是你没有做得很好。你基本上有两种方法可以做到这一点 一种方式(我个人认为更好)是在文件系统中包含本地文件,您可以在其中定义根路径,例如

define ('ROOT', 'your/document/root/path');
// and then include the files
include ROOT . '/' . '/scripts/inc/_header.php';

另一种方式是包含一个网络资源,你正在尝试做什么,但你忘了指定你想要使用的方案(协议),即

define ('ROOT', 'http://localhost/eee');
// and then include the files
include ROOT . '/' . '/scripts/inc/_header.php';

有关详细信息,请参阅documentation for include提供的示例 注意:如果要包含php文件的来源,即包含函数定义的文件等,请使用第一种方法。包含文件,使用第二种方法只包括该文件产生的输出。

答案 2 :(得分:-1)

如果您include()是一个网址,当您想要包含脚本时,您(可能)会包含脚本执行的输出 < EM>源。看起来你真的想要通过本地文件系统路径包含。