Php 什么是“U服务器[“上下文”前缀]

Php 什么是“U服务器[“上下文”前缀],php,Php,phpinfo()显示名为\u SERVER[“CONTEXT\u PREFIX”]的变量。未记录在。 到底是什么?在哪里可以找到所有$\u服务器[*]变量的文档?该列表中还有一些不在php.net网页上的内容 编辑 我从评论中看到,这可能与服务器有关。我在windows上使用UniServer堆栈,但由于这不可靠,因此我不依赖此密钥的存在 是否有99%的时间(即在所有可能的设置中)存在哪些键的列表?这不是$\u全局服务器的默认PHP键 您可以查看PHP手册中的$\u服务器全局变量: 编辑:(

phpinfo()
显示名为
\u SERVER[“CONTEXT\u PREFIX”]
的变量。未记录在。
到底是什么?在哪里可以找到所有
$\u服务器[*]
变量的文档?该列表中还有一些不在php.net网页上的内容

编辑
我从评论中看到,这可能与服务器有关。我在windows上使用UniServer堆栈,但由于这不可靠,因此我不依赖此密钥的存在


是否有99%的时间(即在所有可能的设置中)存在哪些键的列表?

这不是$\u全局服务器的默认PHP键

您可以查看PHP手册中的
$\u服务器
全局变量:

编辑:(注意粗体的句子)

$\服务器是一个数组,包含头、路径、,
和脚本位置。此数组中的条目由web创建 服务器。不能保证每个web服务器都会提供 其中,;服务器可能会省略一些,或提供此处未列出的其他服务器。 也就是说,这些变量中有大量是在 »CGI/1.1规范,因此您应该能够预料到这些


根据6月28日的源代码管理,它在Apache2.3.13中看起来是新的。还有上下文文档根,看起来更容易理解

“引入新的context_文档_根和context_前缀,它们提供有关非全局URI到目录映射(例如mod_userdir或mod_别名)到脚本的信息。”来源:

它来自Apache,与何时可以在请求URI和不同目录之间有不同的映射有关,例如当您使用“username”的web空间访问网站时,因此实际的文档根将有所不同

我认为,如果您为一个URI指定多个目录源,那么它将非常有用,例如:

Userdir public_html /usr/web 
然后,您永远无法确定文件是否位于“public\u html”或“/usr/web”(因为它先尝试一个,然后尝试另一个),因此上下文文档根和上下文前缀可以帮助您找到它

由于文档()中似乎跳过了2.3,因此尚无法查看任何正式文档


编辑:这些评论回答了您的另一部分关于您可以依赖哪些服务器变量的问题(不可能说)。如果您发现“上下文”变量满足您的需要,那么您可能需要编写一个函数,其中说明“如果存在,请使用它们,如果没有,请使用另一个”


一个常见的例子是当您尝试(不可靠地,我知道)获取源协议时。在搜索HTTPS='on'之前,您将首先检查代理添加的头(X_FORWARDED_PROTO)。如果环境变量恰好在您的服务器上,您可能需要执行类似操作。

您使用的是框架还是CMS?这绝对不是默认的PHP键。这可能意味着它是由web服务器或扩展设置的。如果您能提供更多关于这些内容的信息,这会有所帮助。“此数组中的条目是由web服务器创建的。不能保证每个web服务器都会提供其中任何一个条目;服务器可能会忽略一些条目,或者提供未在此处列出的其他条目。”我认为您找不到所有
$\u服务器[*]的文档
variables。添加注释,该注释也出现在2.4()的发行说明中。但2.4文档中仍然没有任何内容。