包含带有变量的页面


Include page with variables

我对PHP相当陌生。我已经学会了如何使用"include"将HTML和PHP文件包含在我的PHP页面中。但是,我正在尝试包含一个PHP页面并同时向其传递变量。我最初的尝试是这样的:

include 'localhost/blah/test.php?var1=20&var2=30';

但这给了我这个错误:

Warning: include(...): failed to open stream: No such file or directory in C:'xampp'htdocs'blah'index.php on line 78

猜包含只允许我打开文件,而不是 URL。我在谷歌上做了一些搜索,发现如果allow_url_fopen在我的 php.ini 文件中打开,那么我应该能够做到这一点。我检查了 php.ini它确实设置为打开。

编辑以下答案和注释:

那么看来我想做的事情不会以这种方式工作。最终这就是我想要的:

在 index.php 上,当用户单击LINK_A时,仅使用 blah.php?var=A 重新加载 #DIV_FOO。

如果用户单击LINK_B,则仅使用 blah.php?var=B 重新加载 #DIV_FOO。

我的页面很大,我试图通过一次只需要请求一个"子页面"来限制负载,而不是请求整个大索引.php。你建议怎么做?

为了更清楚地添加到我之前的评论中:index.php将包括blah.php。如果用户点击链接,我不希望重新加载 index.php,而只是 blah.php更改为 blah.php?var=A。

即使你可以通过URL包含外部文件,你仍然无法将变量作为URL的一部分传递给它 - PHP不会在包含时执行它包含的代码 - 只是在程序流到达它的时候。

但是,没有必要。包含的代码接收包含它的作用域,因此您可以声明变量,然后包含代码,并且包含的代码将有权访问声明的变量:

主.php

<?php
$a = 5;
$b = 10;
include("extra.php");
?>

额外.php

<?php
$c = $a * $b;
echo $c;       // 50
?>

无需解析变量,只需定义为 'normal

$var1=20;
$var2=30;
include '/PATH/test.php';

并且不要解析外部文件(如果它托管在本地)

为此,您必须包含完全限定的域名

http://php.net/manual/en/function.include.php

 // Won't work; looks for a file named 'file.php?foo=1&bar=2' on the
 // local filesystem.
 include 'file.php?foo=1&bar=2';
 // Works.
 include 'http://www.example.com/file.php?foo=1&bar=2';
然后

,您将一些文件包含在当前脚本中,所有变量都将如在基本脚本中。Remeber,然后你包括文件并使用对象变量,这将不起作用。