繁体   English   中英

PHP - include()文件在变量放入url时不起作用?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM