包括一个php文件请求

包括一个php文件请求,php,include,server-side-includes,Php,Include,Server Side Includes,如果真的有这样的事情存在,我会感到惊讶,但我找不到任何与我的谷歌fu相关的东西 我在我的站点的每个页面上都包含一个使用require\u once()的PHP文件。该文件是一个轻型定制框架 我想知道是否可以删除整个require\u once()行,并使用另一种模糊机制,将库包含在指定文件夹中每个文件的开头 这背后的原因是,特定文件夹中的文件将被编码知识有限的人修改,我不希望他们认为PHP行不重要而把它们搞糟 编辑:该库最终将被分发,旨在处理典型的PHP安装 谢谢 是的,这是非常可能的,使用ph

如果真的有这样的事情存在,我会感到惊讶,但我找不到任何与我的谷歌fu相关的东西

我在我的站点的每个页面上都包含一个使用
require\u once()
的PHP文件。该文件是一个轻型定制框架

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

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

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


谢谢

是的,这是非常可能的,使用
php.ini
指令

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

php_flag auto_prepend_file header.php

是的,这是非常可能的,使用
php.ini
指令

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

php_flag auto_prepend_file header.php

另一种我觉得比
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()的结果,并进行适当的委派。

另一种我觉得比
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()的结果,并进行适当的委派。

只需说文件是自动生成的,所有更改最终都会被擦除:)只需说文件是自动生成的,所有更改最终都会被擦除:)这非常有趣,因为它大部分是透明的。但是假设这个“框架”将被广泛分发,我能假设这种技术对典型的PHP安装是有效的吗?我认为如果你要分发这个框架,用一种模糊的“神奇”的方式做事情可能不是一个好方法。花药推荐的单点访问方式是最流行的。是的,我的错,我应该更准确地回答这个问题。谢谢你的快速回答!这非常有趣,因为它基本上是透明的。但是假设这个“框架”将被广泛分发,我能假设这种技术对典型的PHP安装是有效的吗?我认为如果你要分发这个框架,用一种模糊的“神奇”的方式做事情可能不是一个好方法。花药推荐的单点访问方式是最流行的。是的,我的错,我应该更准确地回答这个问题。谢谢你的快速回答!这可能很好,但我的访问技能已经生锈了。我必须确保不丢失任何查询字符串,并允许任何文件结构。以下是我到目前为止得到的结果:
RewriteCond上的RewriteEngine$1 RewriteRule^(.*)$/framework/index.php/$1[L]
。它可以很好地截获文件请求,但我可以用手获取
$1
并使用它…@RémiBreton我已经扩展了我的答案;)这可能很好,但我的访问技能已经生锈了。我必须确保不丢失任何查询字符串,并允许任何文件结构。以下是我到目前为止得到的结果:
RewriteCond上的RewriteEngine$1 RewriteRule^(.*)$/framework/index.php/$1[L]
。它可以很好地截获文件请求,但我可以用手获取
$1
并使用它…@RémiBreton我已经扩展了我的答案;)