包括php on file request

时间:2012-07-15 17:12:22

标签: php include server-side-includes

如果有这样的事情存在,我会很遗憾,但是我找不到任何与Google-fu有关的内容。

我在我网站的每个页面上都使用require_once()包含一个PHP文件。该文件是一个轻量级的定制框架。

我想知道是否可以删除整个require_once()行,并使用另一种模糊机制,将库包含在指定文件夹中每个文件的开头。

这背后的原因是该特定文件夹中的文件将被编码知识有限的人修改,我不希望他们搞砸了认为它们不重要的PHP行。

编辑:该库将最终分发,旨在处理典型的PHP安装程序。

谢谢!

2 个答案:

答案 0 :(得分:3)

我觉得另一种比auto_prepend_file更不明显的技术是首先将对该文件夹的所有请求重定向到一个文件,然后加载库,然后加载你将拥有这些文件的文件其他用户修改。

以下是我使用重写代码解析此类内容的方法...... 如果htaccess文件与文件夹位于同一目录中,我认为重写规则将如下所示: RewriteRule ^(.*)$ index.php/$1 [L]

在index.php文件中,我通常为网站加载某种配置,然后委托。 我在这里使用这个函数来获取当前的URL ...我不完全确定它是否有点过分,但它在几个平台上对我来说一直都是有效的。

function get_current_url() {
 $pageUrl = 'http';
 if (@$_SERVER["HTTPS"] == "on") {$pageUrl .= "s";}
 $pageUrl .= "://";
 if ($_SERVER["SERVER_PORT"] != "80") {
  $pageUrl .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
 } else {
  $pageUrl .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
 }

 return $pageUrl;
}

然后你可以使用php的parse_url()函数解析get_current_url()的结果并适当地委派。

答案 1 :(得分:2)

是的,这很可能,使用php.ini指令auto_prepend_file

因此,例如,在相应的.htaccess文件中:

php_flag auto_prepend_file header.php