我很困惑,为什么我的代码不起作用:
include('section_common.php?cat ='。$ cat_map [$ cat] ['url']);
它给:
警告:include(section_common.php?cat = cat):无法打开流:第67行的C:\ xampp \ htdocs \ 1.php没有错误
当我访问localhost / section_common.php?cat = cat时它运行良好,我认为问题出在函数include本身,因为包含的链接在浏览器中工作,并且包含它导致无法打开流。
答案 0 :(得分:0)
您不能使用查询字符串包含此类文件。也许重构代码会使代码更好,更不易碎。
答案 1 :(得分:0)
无法将参数传递给include或require。
DEFAULT
$cat= $cat_map[$cat]['url'];
include("section_common.php");
在“section_common.php”中:
echo $cat;
SESSION
session_start();
$cat= $cat_map[$cat]['url'];
$_SESSION["cat"] = $cat;
include("section_common.php");
在“section_common.php”中:
session_start();
echo $_SESSION["cat"];
CURL:
$connecturl = curl_init('http://localhost/section_common.php?cat='.$cat_map[$cat]['url']);
curl_setopt($connecturl,CURLOPT_RETURNTRANSFER,true);
$output = curl_exec($connecturl);
curl_close($connecturl);
echo $output;
Jquery的:
$.ajax({
url: "section_common.php",
type: "GET",
data: {cat:"<?=$cat_map[$cat]['url']?>"},
success: function(data){
$("body").html(data);
}
})
答案 2 :(得分:0)
当您包含文件时,您提供文件路径,它不是http请求,所以如果您提供一些参数,如:
包括( “file.php ID = 1?”);
他将查找名为“file.php?id = 1”的文件,并且不会按照您的预期进行操作。
要做你想做的事情,只需在脚本中设置一个变量值,如果你能够访问你的变量后包含你的文件:
$cat= $cat_map[$cat]['url'];
include("section_common.php"); // you can use $cat in this script
这是因为“include();”只需复制粘贴包含的文件。但是如果你把这个剧本包含在另一个地方,你必须要充实,因为他可能找不到$ cat。
答案 3 :(得分:0)
您应该为include()
提供文件名,但是您写下的文件名不是。{如果您在section_common.php
中有一些条件案例,也许您应该将参数作为$_SESSION
变量传递。