我对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。我在google上做了一些搜索,发现如果我的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.希望你理解我......
答案 0 :(得分:2)
即使您可以通过URL包含外部文件,您仍然无法将变量作为URL的一部分传递给它 - PHP不会在包含时执行它包含的代码 - 就在程序流到达时它
然而,没有必要。包含的代码接收包含它的范围,因此您可以声明变量,然后包含您的代码,并且您包含的代码将可以访问声明的变量:
<强> main.php 强>
<?php
$a = 5;
$b = 10;
include("extra.php");
?>
<强> extra.php 强>
<?php
$c = $a * $b;
echo $c; // 50
?>
答案 1 :(得分:1)
无需解析变量,只需定义为&#39; normal
$var1=20;
$var2=30;
include '/PATH/test.php';
如果外部文件在本地托管
,则不解析该文件答案 2 :(得分: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';
答案 3 :(得分:0)
然后你将一些文件包含在当前脚本中,所有变量都将在基本脚本中。记住,然后你包含文件和处理对象变量,这将不起作用。