【发布时间】:2011-08-06 05:48:33
【问题描述】:
我想include() 一个位于我服务器上的 php 文件,带有额外的 GET 属性。
但它不起作用:
include('search.php?q=1');
它给出的错误:
PHP Warning: include(): Failed opening './search.php?q=1' for inclusion
似乎它试图打开一个字面上名为“search.php?q=1”的文件,而不是打开“search.php”文件并向其发送 GET 属性。
*请注意,如果我不放置任何 GET 属性,它确实有效:
include('search.php');
【问题讨论】:
-
它不能工作。你不能在那里使用查询参数。
-
是什么让您认为它应该有效? GET 是一种 HTTP 方法,即它由 HTTP 协议使用,由您的 Web 服务器处理。另一方面,
include只是直接从文件系统读取和解释文件,不涉及 Web 服务器。这是两个不同的过程。 -
如果启用了
allow_url_include和allow_url_fopen,@Felixinclude可以使用 URI。 -
@Felix 当然是的,出于安全原因,它在大多数共享主机上都被禁用了