我正在尝试从另一个php文件A.PHP加载一个php文件B.PHP,另外我想通过$ _GET发送一个变量。两个文件都存储在同一目录中。我试过几种方法:
第一) 直接写在我的文件上:
require (__FILE__)."\b.php?action=1";
执行回显的结果是:C:\ xampp \ htdocs \ pfc \ html \ a.phpb.php?action = 1,所以INCORRECT!
然后我尝试了:
require (__FILE__)."\..\b.php?action=1"; INCORRECT again
第二) 在我设置的不同PHP上:
define('MAINDIR',dirname(__FILE__) . '\\');
define('DL_DIR',MAINDIR . 'pfc\\html\\'); // Also tried with a normal '/'
然后在我的文件中我就这样做了:
require DL_DIR."b.php?action=1"; I also tried with include, but I guess this has nothing to do.
在这种情况下,如果我做了回音,我得到:C:\ xampp \ htdocs \ pfc \ html \ b.php,所以正确!
但是,当我运行程序时,我收到下一个错误:
警告:require(C:\ xampp \ htdocs \ pfc \ html \ b.php?action = 1):无法打开流:C:\ xampp \中没有此类文件或目录第101行的htdocs \ pfc \ html \ a.php
警告:require():无法打开'C:\ xampp \ htdocs \ pfc \ html \ b.php?action = 1'以包含(include_path ='。;; C:\ xampp第101行的C:\ xampp \ htdocs \ pfc \ html \ a.php中的\ php \ PEAR')
显然它无法在文件中找到文件。所以我再试一次'.. \'这个版本......错了!
第3步)在等式中添加realpath
require realpath(dirname(__FILE__)."\b.php?action=1");
而且,我得到了:
警告:require():第101行的C:\ xampp \ htdocs \ pfc \ html \ HTML_menu_supervisor.php中的文件名不能为空
警告:require():在C:\ xampp \ htdocs \ pfc \ html \中打开''以包含(include_path ='。; C:\ xampp \ php \ PEAR')失败第101行的HTML_menu_supervisor.php
我真的不知道发生了什么。请有人帮帮我!并提前感谢: - )
答案 0 :(得分:1)
据我所知,您无法通过require
或include
传递参数。因此,我相信您的require
实际上正在寻找一个不存在的文件(因为您可能没有名为b.php?action=1
的文件。
您可以设置所需的任何变量,并在require
d文件中引用它们(假设它们在相同的范围内)。
答案 1 :(得分:0)
您无需获取包含参数。
如果你的网址看起来像这样
localhost/myfunction.php?action=1
myfunction.php:
require (__DIR__)."\..\b.php";
您可以包含您的文件,它将获得开箱即用的GET变量。
包含是您所包含文件的复制和粘贴。
所以你的b.php
应该是这样的:
$allowedGetValues = array(1,2,3,4);
if(isset($_GET['action']) && array_key_exists($_GET['action'],$allowedGetValues) ){
..
}
答案 2 :(得分:0)
你必须使用include或require函数,如下所示 -
include('b.php');
or
require('b.php');