在PHP中,我构建了一个使用include()来加载网站部分的网页。
但是,我现在碰到了一个问题:
当我使用像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()
网址中传递get变量吗?
答案 0 :(得分:8)
include
以这种方式不获取URL,它从文件系统中获取文件,因此不存在查询字符串。
你可以这样做:
$_GET['type'] = 'actueel';
include('data-storingen.php');
答案 1 :(得分:5)
include()
函数不通过HTTP访问文件,它通过操作系统自己的文件系统访问文件。所以不计算GET变量。 (因为它们不是文件名的一部分)。
用外行人的话说,包含的要点是将文件上的一个文件中的所有内容“复制/粘贴”到另一个文件,这样就没有一个巨大的文件,而是一些较小的,更易于维护的文件。
答案 2 :(得分:3)
除非你有一个完全限定的URL,地址中有protocol://
,否则PHP会将你传入include()/ require()的内容解释为LOCAL文件,这意味着它正在寻找一个文件您的名称为data-storingen.php?type=actueel
的驱动器,而您只有data-storingen.php
。
由于您正在处理本地文件,因此不支持查询字符串,您必须将其从您传递给include()的“文件名”中删除。
答案 3 :(得分:2)
您可以/应该始终将变量设置为外部,因为您无法通过URL ....
执行此操作$_GET['type'] = "actueel";
include("data-storingen.php");
然后,包含的文件可以访问变量(假设您在包含的文件中使用$_GET['type']
)
答案 4 :(得分:2)
不可能传递这样的变量。您可以在actueel
内部使用变量data-storingen.php
,只要它在包含它的页面中声明,就在include语句之前。
考虑将包含文件中的代码复制粘贴到当前文件中。所以你可以有一个文件:
$actueel = 'abc';
include(data-storingen.php);
然后你的data-storingen.php
:
echo $actueel;
它将输出'abc'。