当包含的链接有变量时,PHP包括不工作

时间:2013-10-22 01:21:10

标签: php

我很困惑,为什么我的代码不起作用:

  

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本身,因为包含的链接在浏览器中工作,并且包含它导致无法打开流。

4 个答案:

答案 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变量传递。