PHP在html的错误位置回音

PHP在html的错误位置回音,php,html,include,echo,Php,Html,Include,Echo,我试图制作一个基于模板的系统来交付内容,但我遇到了一个似乎无法解决的问题。当我尝试回显包含includes数据的变量时,它会在html的错误部分输出 下面是“newstuff.php”,这是我要在浏览器上执行的页面,有问题的变量是$php$head$content <?php $php = include "templates/content/newstuff/phpCode.php"; $head = include "templates/content/newstuff/head.h

我试图制作一个基于模板的系统来交付内容,但我遇到了一个似乎无法解决的问题。当我尝试回显包含includes数据的变量时,它会在html的错误部分输出

下面是“newstuff.php”,这是我要在浏览器上执行的页面,有问题的变量是
$php$head$content

<?php

$php = include "templates/content/newstuff/phpCode.php";
$head = include "templates/content/newstuff/head.html";
$content = include "templates/content/newstuff/content.php";

include realpath(dirname(__FILE__)).'/templates/templateMain.php';
?>
<?php
echo $php;
?>


<!DOCTYPE html>
<html>

    <head>
        <?php echo $head; ?> 
    </head>

    <body class="body1" onload="inputBlur2()">
        <div class="borderLine"></div>
        <div class="banner"></div>

        <div class="mainContent1" >

            <div class="header1" >

                <div class="headerContainer" >

                    <ul class="navList1">
                        <li><a id = "B0"  href="index.php">New Stuff</a></li>
                        <li><a id = "B1"  href="MainPage.php">Products</a></li>
                        <li><a id = "B2"  href="ProjectsPage.php">Projects</a></li>
                        <li><a id = "B3"  href="AOrdering.php">About Ordering</a></li> 
                        <li><a id = "B4"  href="ContactMe.php">Contact Us</a></li>
                        <li><a id = "B5"  href="FAQPage.php">FAQ</a></li>
                        <li><a id = "B6" href="SCart.php">My Cart</a></li>
                    </ul>
                </div>
            </div>

            <div class="content1"> 
                <?php echo $content; ?>
            </div>

        </div>
    </body>
</html>
下面是'head.html',它提供了由
$head
PHP变量传递的代码

<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="/../StylePR.css">
<title>KickUp Electronics</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<p>Welcome to the new stuff page!!!</p>
最后,这是从chrome DOM编辑器输出的页面源。注意content.php中信息的位置是错误的,并且有奇怪的“1”被回显(另外,在查看页面源代码时,head.html中的信息被放置在html标记之外)


升压电子学
欢迎来到新材料页面

1. 1.
1.

我试过多次寻找解决方案,但都无济于事。这是在html完全加载之前执行回显的问题吗?任何帮助都将不胜感激

您使用的包含错误

$php = include "templates/content/newstuff/phpCode.php";
立即输出该文件的输出,并将
$php
设置为
1
(即“它工作了!”)

处理退货:失败时包括退货
FALSE
,并发出警告。成功包含,除非被包含的文件覆盖,否则返回
1
-


您可以使用捕获输出,但更好的解决方案可能是将
include
调用直接移动到
templateMain.php

您使用的includes错误

$php = include "templates/content/newstuff/phpCode.php";
立即输出该文件的输出,并将
$php
设置为
1
(即“它工作了!”)

处理退货:失败时包括退货
FALSE
,并发出警告。成功包含,除非被包含的文件覆盖,否则返回
1
-


您可以使用捕获输出,但更好的解决方案可能是将
include
调用直接移动到
templateMain.php

中,这样做行不通。按照你的想法$php=include“templates/content/newstuff/phpCode.php”;它马上就可以把它包括进去。TBO我想看一个适合PHP的模板引擎——twig非常好,而且很容易入门。包含在您想要的文件中
include
返回一个真/假,而不是文件的内容。@Richard Housham有趣的是,你提到了twig,我尝试了一下,然后意识到你不能包含php代码:(600个字符有点棘手,但基本上你有这种布局。$config(连接,设置到twig文件)$logic(获取数据,如果需要处理)$display(将数据发送到细枝并让其显示)这就是你得到的分离。我知道开始有点棘手,但相信我,它真的很好。你可以有多个模板,继承的模板。学习它真的很好,你会喜欢它的。它也是一种很小的语言,实际上只是在后端制作PHP,所以你知道它在做什么。哟你也可以重用代码片段,很多好东西,它会引导你进入一个好的设计模式。这是行不通的。按照你的想法。$php=include“templates/content/newstuff/phpCode.php”;它会立即执行包含操作。TBO我会为PHP寻找一个合适的模板引擎-twig真的很好,而且很容易入门。将文件包含在您想要的位置。
include
返回一个真/假,而不是文件的内容。@Richard Housham有趣的是,您提到twig,我尝试了它,然后意识到您不能包含PHP代码e:(600个字符有点棘手,但基本上你有这种布局。$config(连接,设置到twig文件)$logic(获取数据,如果需要处理)$display(将数据发送到twig并让它显示)这就是你得到的分离。我知道开始有点棘手,但相信我,它真的很好。你可以有多个模板,继承的模板。学习它真的很好,你会喜欢它的。它也是一种很小的语言,实际上只是在后端制作PHP,所以你知道它在做什么。哟你可以重用代码片段,还有很多好的东西,它会引导你进入一个好的设计模式:注意一个合适的框架,比如Laravel,模板引擎将以最佳的方式来处理这样的事情。谢谢你的信息,我通过把变量设置到文件的路径,然后把它包含进去。考虑到一个适当的框架,如Laravel,在模板引擎将处理这样的东西为您以最佳实践方式。感谢信息,我得到它的工作,通过设置变量的文件的路径,然后包含,而不是回声与变量的温度。lateMain.php