php __FILE__ not working



我正试图从另一个php文件a.php加载一个php文件B.php,另外我想通过$_GET发送一个变量。两个文件都存储在同一目录中。我尝试了几种方法:

1)直接写在我的文件上:

require (__FILE__)."b.php?action=1";

执行echo的结果是:C:\examplep\htdocs\pfc\html\a.phpb.php?action=1,太不正确了!

于是我尝试了:

require (__FILE__)."..b.php?action=1"; INCORRECT again

第2)在另一个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.

在这种情况下,如果我执行echo,我会得到:C:\examplep\htdocs\pfc\html\b.php,所以正确!

然而,当我运行程序时,我会得到下一个错误:

警告:require(C:\examplep\htdocs\pfc\html\b.php?action=1):无法打开流:在第101行的C:\examplep\tdocs\pfc \html\a.php中没有这样的文件或目录

警告:require():打开'C:\examplep\htdocs\pfc\html\b.php失败?action=1'用于包含(include_path='.;C:\examplep\php\PEAR')在C:\examplep\htdocs\pfc\html\a.php的第101行

很明显,它在文件中找不到文件。所以我再次尝试了"..\"这个版本。。。错了!

3)将realpath添加到等式

require realpath(dirname(__FILE__)."b.php?action=1");

而且,我再次得到:

警告:require():在第101行上的C:\examplep\htdocs\pfc\html\html_menu_supervisor.php中,文件名不能为空

警告:require():无法在第101行的C:\examplep\htdocs\pfc\html\html_menu_supervisor.php中打开"以进行包含(include_path='.;C:\examplep\php\PEAR')

我真的不知道发生了什么事。请有人帮帮我!提前感谢:-)

据我所知,您不能通过requireinclude传递参数。因此,我相信您的require实际上是在寻找一个不存在的文件(因为您可能没有名为b.php?action=1.的文件

您可以设置需要的任何变量,并在required文件中引用它们(假设它们在同一范围内)。

您不必为include获取参数。

如果你的url看起来像这个

localhost/myfunction.php?action=1

myfunction.php:

    require (__DIR__)."..b.php";

您可以包含您的文件,它将开箱即用地获得get变量。

include是一个副本&粘贴包含的文件。

所以你的b.php应该是这样的:

$allowedGetValues = array(1,2,3,4);

if(isset($_GET['action']) && array_key_exists($_GET['action'],$allowedGetValues) ){
    .. 
}

您必须使用include或require函数,如下所示-

include('b.php');
or
require('b.php');

相关内容

  • 没有找到相关文章

最新更新