![](/img/trans.png)
[英]PHP, how include variables from another file identified a URL variable
[英]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变量。 (因为它们不是文件名的一部分)。
通俗地说,包含的意思是将文件中的一个文件上的所有内容“复制/粘贴”到另一个文件,这样就没有一个巨大的文件,而是一些较小的,更易于维护的文件。
除非你有一个完全限定的URL,在地址中使用protocol://
,PHP会将你传入include()/ require()的内容解释为LOCAL文件,这意味着它正在你的驱动器上寻找一个名字的文件real是data-storingen.php?type=actueel
,而你只有data-storingen.php
。
由于您正在处理本地文件,因此不支持查询字符串,您必须将其从您传递给include()的“文件名”中删除。
你可以/应该总是在外面设置变量,因为你不能通过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'。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.