插入符合HTML5标准的外部html内容的最佳方式? php vs HTML5 vs javascript方法

问题描述 投票:0回答:4

我知道这对你的大师来说有多么简单,但我一直在寻找一个多小时无济于事......

目标:为我的所有网页使用单个页脚文件和菜单文件。考虑到阻塞,速度等。我的菜单内容是纯html / css,我的页脚内容是纯html / css。最佳解决方案会根据注入的内容而改变吗?例如如果涉及视频,jscript等。

两部分问题:1)哪种方法最优?某种php包括,使用标签,使用jscript等.2)这是如何精确地保持HTML 5标准?即,为了使PHP方法起作用,我的调用网页是否需要是.php然后才能使HTML5标准成为一个有争议的问题?例如如果我想将footer.php注入index.html,我的索引文件是否也必须是.php?类似地,对于标记,外部文件可以是.html文件(我不喜欢用.css调用重新加载所有头信息的想法)还是应该是.php?

在index.html文件中,我尝试了以下内容:

<object id="footerArea" width="100%" height="20%" 
  type="text/html" data="footer.html">
</object>

<?php include 'footer.php' ?>

这些似乎都不适合我。

万一你想知道...这是我的页脚的代码我试图注入样本数据,使其更简单,更容易阅读:

<div class="footer box">
<p class="f-right t-right">
 <a href="#">www.mysite.com</a><br />
  Address: Medford, OR<br />
  Phone: (541) 555-5555
</p>

<p class="f-left">
 Copyright &copy;&nbsp;2011 <a href="#">My Name</a><br />
</p>

<p class="f-left" style="margin-left:20px;">
 <a href="http://sampleurl.com" target="_blank">
  <img style="border:0;width:88px;height:31px"
   src="http://sampleurl.com"
   alt="Valid CSS3!" />
 </a>
</p>

<p class="f-left" style="margin-left:20px;">
 <a href="http://sampleurl" target="_blank">
 <img src="http://sample.png" width="228" height="50" alt="sample alt" title="sample title">
 </a>
</p>
</div>

请原谅我的格式。我仍然不熟悉在论坛中发布代码。我已经尽力了 :)

php javascript performance html5
4个回答
3
投票

您在网址中看到的文件名扩展名与浏览器下载时该文件的处理方式完全没有关系。这一切都归结为文件附带的Content-type标题。网站管理员可以轻松配置其服务器,将所有.exe文件视为纯HTML页面。他们还可以告诉网络服务器通过PHP解析器运行.html页面。事实上,对于“现代”SEO优化网址,您很少看到文件扩展名。这些都是像example.com/some/wonky/path,而不是example.com/page.php?id=wonky

PHP构建和输出页面的事实也与HTML合规性无关。归结为浏览器接收的页面是否符合标准。所有标签都正确关闭了吗?属性是否正确定义?标签是否正确嵌套?等等等等等等。

如果你已经正确构建了代码,那么输出的html将被正确地构造并且是有效的html。如果它不是有效的html,那不是PHP的错 - 那就是你把没有产生正确输出的代码放在一起是你的错。

URL中的文件扩展名唯一相关的是网络服务器输出通用内容类型,例如, “应用程序/八位字节流”。浏览器可以使用可检测的文件扩展名来猜测内容的类型并尝试对其进行处理。但这不保证也不可靠。


1
投票

这就是PHP include应该是这样的:

<?php include 'footer.php'?>

据我所知,您在问题中的代码是将字符串“footer.php”赋值给变量include。但是,您是否考虑使用像Smarty这样的东西,而不是滚动自己的模板系统?


1
投票

如果被调用的代码类似于固定的页脚,您可能想要创建简单的页脚,然后包括:

<?php
readfile("yourfile.htm");
?>

0
投票

像下面这样的东西应该做你想要的:

的index.php

<html>
  <head>
    <link rel="stylesheet" type="text/css" href="main.css" />
    <!-- other css, scripts etc -->
  </head>
  <body>
    <!-- your main content here -->
    <?php include 'footer.html' ?>
  </body>
</html>

footer.html

<div class="footer box">
  <!-- your footer content here -->
</div>

当您在浏览器中加载index.php和“查看源代码”时,您应该看到上面显示的内容,但<?php include "footer.html" ?>应该替换为文件“footer.html”中的内容。

当您通过Web浏览器查看源代码时,您不应该看到PHP代码本身。如果你确实在“查看源代码”中看到php代码,这表明你的服务器没有配置为正确运行php。


对于从浏览器加载内容并且不使用php的替代方法,我会指向this related question and answer

© www.soinside.com 2019 - 2024. All rights reserved.