我只需要包含一个html文件(其中包含我所有页面的导航栏)。
我试过:<?php htmlentities(file_get_contents("include/navigation.html")); ?>
但什么都没有出现。
我已经检查了其他类似的问题,上面的代码始终是答案。那么为什么它对我不起作用呢?
如果需要,这是我的导航文件:
<!-- Navigation -->
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
<div class="container">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="index.html">[ ] Advanced Web Development</a>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav navbar-right">
<li class="active">
<a href="index.html">Home</a>
</li>
<li>
<a href="#about">About</a>
</li>
<li>
<a href="#resume">Résume</a>
</li>
<li>
<a href="#blog">Blog</a>
</li>
<li>
<a href="#projects">Projects</a>
</li>
<li>
<a href="#blog">Contact</a>
</li>
<!--
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Portfolio <b class="caret"></b></a>
<ul class="dropdown-menu">
<li>
<a href="portfolio-1-col.html">1 Column Portfolio</a>
</li>
<li>
<a href="portfolio-2-col.html">2 Column Portfolio</a>
</li>
<li>
<a href="portfolio-3-col.html">3 Column Portfolio</a>
</li>
<li>
<a href="portfolio-4-col.html">4 Column Portfolio</a>
</li>
<li>
<a href="portfolio-item.html">Single Portfolio Item</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Blog <b class="caret"></b></a>
<ul class="dropdown-menu">
<li>
<a href="blog-home-1.html">Blog Home 1</a>
</li>
<li>
<a href="blog-home-2.html">Blog Home 2</a>
</li>
<li>
<a href="blog-post.html">Blog Post</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Other Pages <b class="caret"></b></a>
<ul class="dropdown-menu">
<li>
<a href="full-width.html">Full Width Page</a>
</li>
<li>
<a href="sidebar.html">Sidebar Page</a>
</li>
<li>
<a href="faq.html">FAQ</a>
</li>
<li>
<a href="404.html">404</a>
</li>
<li>
<a href="pricing.html">Pricing Table</a>
</li>
</ul>
</li>
-->
</ul>
</div>
<!-- /.navbar-collapse -->
</div>
<!-- /.container -->
</nav>
在上面的示例中,php 正在从文件创建一个字符串,但对它不执行任何操作。为了使您的代码正常工作,您需要添加一个回显:
<?php echo htmlentities(file_get_contents("include/navigation.html"));
这是因为函数通常有三种方式可以影响事物:
- 返回一个值(htmlentities 做什么)
- 修改传递给它们的 (a) 值(查看通过引用传递
- 直接回显内容或将某些内容回显到输出缓冲区
由于 htmlentities 返回一个值,因此不会向输出发送任何内容。您必须将其保存到变量以供以后输出,或者立即将其回显/打印到输出。
或者,您可以按照@David的建议将其包含在内。
虽然在
普通代码上使用echo
就足够了,但如果您希望人们能够访问 HTML,您可以将其包含在 php 文件本身中,除了<?php ?> tag.
htmlentities() 不会输出到浏览器。您仍然需要echo()
或以其他方式输出。
<?php echo htmlentities(file_get_contents("include/navigation.html")); ?>
或者按照注释中的建议使用 include()
嵌入整个文件。PHP 将尝试处理该文件,因此请确保它不包含任何 PHP 代码。
<?php include( "include/navigation.html" ); ?>
尝试:
<?php
$file = htmlentities(file_get_contents("include/navigation.html"));
echo $file;
?>