PHP -在url中放入变量时include()文件不工作


PHP - include() file not working when variables are put in url?

在PHP中,我建立了一个使用include()加载网站部分的网页。然而,我现在遇到了一个问题:当我使用这样的url: data-openov-storingen.php?type=actueel它给了我这个错误:

Warning: include(data-storingen.php?type=actueel): failed to open stream: No such file or directory in blablabla

是否有可能在include() url中传递get变量?

include以这种方式不获取URL,它从文件系统中获取文件,所以没有查询字符串这样的东西。

你可以这样做:

$_GET['type'] = 'actueel';
include('data-storingen.php');

include()函数不通过HTTP访问文件,而是通过操作系统自带的文件系统访问文件。因此不计算GET变量。(因为它们不是文件名的一部分)。

用外行的话来说,include的意义在于将一个文件上的所有内容"复制/粘贴"到另一个文件上,这样你就不会有一个庞大的文件,而是有几个更小、更易于维护的文件。

除非您有一个完全限定的URL,地址中有protocol://,否则PHP将把您传递给include()/require()的内容解释为本地文件,这意味着它正在查找驱动器上的文件,其名称实际是data-storingen.php?type=actueel,而您只有data-storingen.php

由于处理的是本地文件,因此不支持查询字符串,因此必须从传递给include()的"filename"中去掉查询字符串

您可以/应该始终在外部设置变量,因为您不能通过URL....

做到这一点
$_GET['type'] = "actueel";
include("data-storingen.php");

那么包含的文件可以访问变量(假设您在包含的文件中使用$_GET['type'])

不,这样传递变量是不可能的。您可以在data-storingen.php中使用变量actueel,只要它是在包含它的页面中声明的,在include语句之前。

将包含视为将代码从包含的文件复制粘贴到当前文件中。所以你可以有一个文件:

$actueel = 'abc';
include(data-storingen.php);

然后输入data-storingen.php:

echo $actueel;

它将输出'abc'