PHP自动包含文件 : auto_prepend_file 和 auto_append_file

我们知道,在PHP中,可以通过 require(require_once)、include(include_once) 函数来实现文件的载入包含。

但有时候,我们需要跨应用、跨项目地去加载相同的脚本,如数据库配置信息。

使用 require(require_once)、include(include_once)虽然可以实现,但未必符合所有需求。

当然,我们项目架构的时肯定也会对软件的设计模式加以考虑,最基本的就是将单独创建一个和配置有关的文件,作为公共配置文件。但同样未必符合所有需求,有时候甚至无法实现真正意义上的公共配置文件。

[font=微软雅黑][size=4][b]一种更简便实用的方法[/b][/size][/font],就是使用 php.ini 中的两个选项 :

auto_prepend_file ——自动的在你的PHP脚本前包含文件
auto_append_file ——自动的在你的PHP脚本后包含文件

Windows 平台配置示例:

auto_prepend_file = "c:/Program Files/service/auto_include.php"
auto_append_file = "c:/Program Files/service/footer.php"

Linux 平台配置示例:

auto_prepend_file = "/home/username/service/auto_include.php"
auto_append_file = "/home/username/service/footer.php"

这样就相当于你所有的PHP脚本都拥有了 auto_include.php、footer.php 的代码。(默认两个选项是空的,你可以根据需要添加)
例如:
你可以将数据库配置信息统一定义 auto_include.php,这样你整台服务器的PHP都能用统一的数据库信息了,一单需要修改(如数据库密码、端口号等)只要改这一个文件即可;
您也可以定义好想要的各种类库,然后统一包含在 auto_include.php,这样你便可以在任何地方使用到自己的底层类库了。
[color=#0000ff]用过SAE(新浪云计算)的人应该知道,SAE就是采用此种形式,为用户提供各种各样的服务(如KVDB、Stroage、fetchUrl等等),用户使用的 MySQL 也是用统一的定义好的常量。

[font=微软雅黑][size=5][b]附:[/b][/size][/font]
如果使用的是Apache,还可以对单个目录进行不同配置选项的修改。这样做的前提是服务器允许重设其主配置文件。
要给目录设定自动前加入和自动追加,需要在该目录中创建一个名为 .htaccess 的文件。这个文件需要包含如下两行代码:

php_value auto_prepend_file “/home/username/include/header.php”
php_value auto_append_file “/home/username/include/footer.php”

注意:
其语法与配置文件php.ini中的相应选项有所不同,和行开始处的php_value一样:没有等号。
许多php.ini中的配置设定也可以按这种方法进行修改。
在 .htaccess 中设置选项,而不是php.ini中 或是在Web服务器的配置文件中进行设置,将带来极大的灵活性。
可以在一台只影响你的目录的共享机器上进行。
不需要重新启动服务器而且不需要管理员权限。
使用 .htaccess 方法的一个缺点就是目录中每个被读取和被解析的文件每次都要进行处理,而不是只在启动时处理一次,所以性能会有所降低。

最新文章

Return Top