Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将变量放入url时PHP-include()文件不起作用?_Php_Variables_Include_Get_Warnings - Fatal编程技术网

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

将变量放入url时PHP-include()文件不起作用?,php,variables,include,get,warnings,Php,Variables,Include,Get,Warnings,在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变量

在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');

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

由于您处理的是本地文件,因此不支持查询字符串,您必须将其从传递给include()的“文件名”中删除。

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


用外行的话说,包含的目的是将一个文件中的所有内容“复制/粘贴”到另一个文件中,这样你就不会有一个巨大的文件,而是有几个更小、更易于维护的文件。

你可以/应该总是将变量设置在外部,因为你不能通过URL来实现这一点

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

然后包含的文件可以访问变量(假设您在包含的文件中使用
$\u GET['type']

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

将包含视为将代码从包含的文件复制粘贴到当前文件中。因此,您可以拥有一个文件:

$actueel = 'abc';
include(data-storingen.php);
然后在
data storingen.php
中:

echo $actueel;

它将输出“abc”。

1。如果你读了错误,你就会明白你的问题是什么。所以别瞎扯了。2.您键入问题的
文本区域下方的预览有一个原因:帮助我们帮助您(通过使您的问题格式正确且清晰)我已为您编辑了问题。下次请把你的问题编排好。有了90个代表,你会期望一个人知道如何编辑一个问题。@Naceledine:的确,我知道出了什么问题,但这就是我问这个问题的原因。我想知道更多关于细节的事情。到底。。。那也行吗?那么现在您只是设置get变量?哈哈好:谢谢你的信息,我会重写那段代码的,谢谢!然而,它并不像你说的那样复制/粘贴。我知道,因为我有一个双重包含(一个包含的文件,其中包含一个包含),双重包含的文件不能从主文件访问函数。。。编辑:我的错,它可以访问该函数。包含的文件被视为函数。它可以从外部(全局)访问变量,但外部(包括文件)无法访问内部变量(很像应用程序无法访问函数范围的变量)。嗯?在文件被包含后,外部文件可以从内部文件访问所有内容。哈哈,事实上,我真的想对此发表评论,因为这就是我包含XD文件的全部原因。我得到了我想要的信息,谢谢各位:)