0

我对 PHP 相当陌生。我已经学会了如何使用“包含”将 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

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

编辑以下答案和评论:

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

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

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

我的页面很大,我试图通过一次只请求一个“子页面”来限制负载,而不是请求整个大 index.php。你会如何建议这样做?

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

4

4 回答 4

2

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

但是,没有必要。包含的代码接收包含它的范围,因此您可以声明变量,然后包含您的代码,您的包含代码将可以访问声明的变量:

主文件

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

额外的.php

<?php
$c = $a * $b;
echo $c;       // 50
?>
于 2013-09-05T21:36:19.993 回答
1

无需解析变量,只需定义为“正常”

$var1=20;
$var2=30;

include '/PATH/test.php';

如果外部文件托管在本地,则不要解析它

于 2013-09-05T21:34:00.457 回答
0

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

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';
于 2013-09-05T21:33:16.027 回答
0

然后你在当前脚本中包含一些文件,所有变量都将在基本脚本中。请记住,然后您包含文件并使用对象变量,这是行不通的。

于 2013-09-05T21:40:36.583 回答