我如何用php响应php?

我如何用php响应php?,php,echo,Php,Echo,我正在开发的网站使用“页眉”和“页脚”模板。这些模板包含在网站的每个页面上。标题模板打开HTML并包含完整的标题标记,然后打开主体标记。页脚模板关闭body标记,然后关闭HTML。基本结构如下: <?php //Set the current page name so it can be highlighted in the menu bar $page="Home"; //For page-specific HEAD includes $headincludes=array("<s

我正在开发的网站使用“页眉”和“页脚”模板。这些模板包含在网站的每个页面上。标题模板打开HTML并包含完整的标题标记,然后打开主体标记。页脚模板关闭body标记,然后关闭HTML。基本结构如下:

<?php
//Set the current page name so it can be highlighted in the menu bar
$page="Home";
//For page-specific HEAD includes
$headincludes=array("<some type of code>","<some other type of code>");
include("/assets/template/header.php");
?>
<!--START PAGE CONTENT-->
<!--END PAGE CONTENT-->
<?php
include("/assets/template/footer.php");
?>

这种方法适用于javascript之类的东西,但当我尝试添加一条PHP语句时,它在浏览器的最后一个页面中以未解析的PHP结束。有什么特殊的方法可以将PHP与PHP相互呼应吗?

从字符串执行PHP的方法是使用
eval()
,但是,它很少是正确的工具

能否将所需的PHP置于
$headincludes
上方,然后将其输出添加到
$headincludes

<?php
//Set the current page name so it can be highlighted in the menu bar
$page="Home";

include 'generators.php';

$links = generateLinks('some_arg');

//For page-specific HEAD includes
$headincludes=array("<some type of code>","<some other type of code>", $links);
include("/assets/template/header.php");
...

您将向阵列添加什么

如果您将php设置为:

$headincludes=array("$var1","$var2");
这是行不通的。你必须这样做:

$headincludes=array($var1,$var2);

在主文件中执行PHP代码,并将结果转储到
$headincludes
中。不需要执行头中的代码,结果不会改变


还是会?如果您实际上试图将任意代码注入到其他代码中,那么您就做错了。

$headincludes中有什么内容


注意:使用
包含_一次

是否尝试字符串连接。 像这样

$headincludes=array("<your html code>".$variable."<more html>","<more>")
$headincludes=array(“$variable.”,“”)
是的,
eval()
(阅读
evil()
)但是您最好重新考虑您的方法。也许,如果您希望包含大量PHP代码,请传递一组可以进一步包含的文件:

// at the beginning of the file
$includes = array('db.php', 'config.php');


// in your header, or footer (whichever is applicable)
foreach($includes as $file){
    if(file_exists($file)){
        include $file; // or include_once
    }
}
然后,使用动态包含,您可以根据需要管理和加载其他代码。

尝试以下操作:

echo eval('?>html or javascript<?');
echo eval('php');

echo eval('?>html或javascript如果您尝试输出php文件,请确保您可以轻松地执行此操作,但您的浏览器将无法运行

因此,您需要:

  • 评估php文件并输出结果

  • 创建要输出的html文件,而不是php文件

或者是你的朋友,它会(就像名字读取一样)包含文件,文件就在那个地方“执行”。“一次”版本不会包含同一个文件两次,如果它以前已经包含过(如果你做了几个包含,这很有用,反过来又做另一个包含).

你能举个例子说明你是如何在
$headincludes
数组中添加php语句的吗?你不能在没有
标记的情况下输出php代码吗?
“$var1”
实际上应该可以工作,即使不需要在字符串中插入它。因为
echo eval(“?>foobarBecause它允许php或html在数组中
headincludes=array(“$x=2+3;”,“?>foobarMmm,no.
evil()
只需将php作为字符串执行。它不允许您重复php。我意识到,采用不同的结构化方法要简单得多——只需将内容划分为更多模块。现在,我有了一个用于全局页面代码的文件,一个用于页面特定标题代码的部分,一个用于页面标题和导航的文件,页面主体,以及为页脚创建一个文件。令人惊讶的是,不同的视角可以改变很多事情。
echo eval('?>html or javascript<?');
echo eval('php');