6

这就是我的文件结构。[..] 是文件夹

[public]
[libs]
[crontab]
[logs]
[sessions]
[tmp]

config.php

域设置为公共文件夹作为其根。包括 config.php 文件在内的所有其他内容都在根目录之外。配置包含数据库连接信息和其他必要的设置。

公共文件夹中的每个页面我都必须放置整个路径,因此包括配置文件。问题是当我将所有内容从本地计算机移动到公共服务器时,我必须浏览每个页面并更改配置文件包含的路径。有没有更好的办法?也许在 php.ini 中设置路径或类似的东西?

谢谢

4

4 回答 4

3

在这种特定情况下,您可以使用:

include("$_SERVER[DOCUMENT_ROOT]/../config.php");
# Note: special exception array syntax within double quotes.

它首先解析到public目录,但向后移动一级../以到达 docroot 之外的配置文件。


但是您也可以SetEnv在您的场合使用.htaccess定义另一个$_SERVER环境变量。

于 2011-10-22T22:34:23.940 回答
2

我经常使用的一种技术来包含与您的 webroot 结构中特定位置相关的文件是使用这样的包含/要求:

require_once(dirname(__FILE__) . '/path/to/include.php');

这样,代码库迁移不需要更改任何硬链接或常量,只要文件以相同的方式保持相互关联。

于 2011-10-22T22:40:00.620 回答
0

您可以只对路径使用常量并更改一次,然后在每个路径上定义该常量 - 包含文件

您还可以查看包含路径 http://php.net/manual/en/function.set-include-path.php

于 2011-10-22T22:29:47.247 回答
0

请参阅include_path ini 设置set_include_path()的文档。

于 2011-10-22T23:05:41.663 回答