将变量放入url时PHP-include()文件不起作用?
在PHP中,我构建了一个使用include()加载网站部分内容的网页。 然而,我现在遇到了一个问题: 当我使用如下url时:将变量放入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变量
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文件的全部原因。我得到了我想要的信息,谢谢各位:)