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

时间:2011-11-28 19:58:06

标签: php variables include get warnings

在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变量吗?

5 个答案:

答案 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'。