2012-10-25 180 views
6

因此,我们构建必须从本地开发服务器移植到测试服务器,然后移至活动服务器的网站。为此,我们已经创建了一个变量:PHP在路径中包含变量

<?php $path = '/_Folder_/_SubFolder_'; ?> 

当我们的网站从服务器移动到下一个,这个想法是简单地改变$路径定义改进,以适应新的开发服务器。目前,在每一页上时,我们称之为包括我们写:

<?php include('../_includes/_css.php'); ?> 

,但我想要做的是:

<?php include($path.'/_includes/_css.php'); ?> 

我的结果,我希望的是:

<?php include('/_Folder_/_SubFolder_/_includes/_css.php'); ?> 

我一直在失败导致:

警告:包括(/ 文件夹 /_SubFolder_/_includes/_css.php)[]:未能打开流:C中没有这样的文件或目录:\ Program Files文件\ Apache软件基金会\ APACHE2.2 \ htdocs中\ FREEDOM2012_FREEDOM2012_DEFAULT_ \住宿\上线15

另一个问题我仍然需要通过调用包括可变电源客rooms.php “../”

<?php include('../_includes/_var.php'); ?> 

如果有人对我如何更有效地做到这一点有所了解,我会非常感激。非常感谢您的时间,耐心和回应的努力。

+0

你有没有试过'echo'你正在输入的字符串包含()'? – Sammitch

+0

由于您在Windows服务器上,您将需要反斜杠而不是斜杠。 – jtheman

+0

只删除前导'/'。 – dualed

回答

2

为什么不永远动态地初始化你的$ path变量和独立于环境?

,如:

$path = dirname(__FILE__); 

与PHP 5.3开始,你也有__DIR__快捷方式,做上述相同。

@see:http://www.php.net/manual/en/language.constants.predefined.php

+0

与'set_include_path'一起使用http://php.net/manual/en/function.set-include-path.php你可以很好地引导它。并且在你的包装中有相当好的相对路径。 –

+0

@Martin Lyne谢谢你 –

2

你需要从

<?php include('../_includes/_css.php'); ?> 

显示以前的目录becose你有 “../”。 如果从 “css.php”=/_ * 文件夹 * _/ /_includes/_css.php您的完整路径,那么你需要使用下面的代码:

<?php $path = './_Folder_/_SubFolder_'; 
include($path.'/_includes/_css.php'); ?> 

其他首先显示文件的完整路径_css.php