我正在设计一个网站,但我遇到了HTML问题。我正在执行并回显PHP文件中的内容然后显示在我的页面上,但是我的浏览器在解析了PHP文件中的内容之后添加了数字1。
这是我的HTML(和PHP):
<section id="header">
<div style="float: left; padding-top: 0px; vertical-align: central;">
<a href="/home"><img src="/img/site/logo.png" alt="DibDibCraft Logo" height="50" width="167" class="logo" /></a>
</div>
<?php echo(include($_SERVER['DOCUMENT_ROOT'] . '/htm/header.php')); ?>
</section>
以下是header.php
的内容:
<link rel="stylesheet" type="text/css" href="/style/layout.css" />
<div id="navBarBtnContainer">Hello</div>
在解析header.php
的内容并且在该部分的末尾(</section>
标记之前)之后放置1。这是一个截图:
如您所见,在</section>
之前添加了数字1。
我已经在HTML和PHP解析器中检查了我的代码,并且两者都没有返回任何会产生这样结果的错误。
我也不知道这个错误的名称是什么(如果是错误的),所以我没有在这个网站上询问就找不到帮助,所以如果这是一个重复的问题,请向他们道歉,如果这是重复的话,请你指点一个可能有助于解决这个问题的问题。
非常感谢,DibDibs
PS:你能否告诉我为什么会这样,这将有助于我避免将来再犯同样的错误,谢谢:)答案 0 :(得分:2)
问题
<?php echo(include($_SERVER['DOCUMENT_ROOT'] . '/htm/header.php')); ?>
删除此行中的回音
最终输出是:
<?php include($_SERVER['DOCUMENT_ROOT'] . '/htm/header.php'); ?>
答案 1 :(得分:1)
include($_SERVER['DOCUMENT_ROOT'] . '/htm/header.php')
将Boolean
作为true == 1
返回
当您回显上一行代码时,它返回1,因为它成功并返回true
删除echo
,它将消失
答案 2 :(得分:1)
发生这种情况的原因是因为这段代码。
<?php echo(include($_SERVER['DOCUMENT_ROOT'] . '/htm/header.php')); ?>
您实际上是echo
嵌套include()
语句调用的返回结果,1
(松散true
- 不要问我为什么使用PHP这里没有使用布尔true
。
这在逻辑上与以下相同:
// this line generates expect HTML output
$success = include($_SERVER['DOCUMENT_ROOT'] . '/htm/header.php');
// this line generates unexpected 1 output
echo($success);
由于您的include实际生成了HTML输出,因此您可以正确呈现预期的HTML。然后,您回显包含操作的1
结果,这会导致显示1
。