具有 GET 属性的 PHP include() (include file.php?q=1)

2022-08-30 19:36:04

我想要一个位于我的服务器上的php文件,带有额外的GET属性。但它不起作用:include()

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');

答案 1

你不想这样做:你必须做一个http请求才能传递GET参数。以这种方式调用的 PHP 脚本将在单独的 PHP 进程中运行。

最佳方法是在本地包含文件:

include('search.php');

并手动将任何参数传递给它,例如

$q = "1";
include('search.php');  // expects `$q` parameter

或者,更干净地说,将您拥有的任何内容放入可以使用参数调用的函数或类中:search.php

include('search.php');  // defines function my_search($q)  
my_search(1);       

答案 2

简单的解决方案是在包含文件之前设置 GET 值。

$_GET['q'] = 1;
include('search.php);

推荐