是否有 require_once 的 HTML 变体?

Posted

技术标签:

【中文标题】是否有 require_once 的 HTML 变体?【英文标题】:Is there a HTML variant of require_once? 【发布时间】:2012-02-20 20:14:12 【问题描述】:

html 中是否有这样一行代码可以与 php 的 require_once 做同样的事情?我只是好奇,因为我想通过多张纸复制一些代码行,而无需要求自己在每一页都输入。

我知道我可以通过 PHP 做到这一点,但我正在寻找一个 HTML 变体?有这样的野兽还是我吠错了树?

【问题讨论】:

HTML 没有 any 机制来做包含。为此,您需要 SSI、PHP 或其他一些内嵌脚本技术。或者你可以在使用 javascript 时啜饮一些东西,并在那里实现你的 require_once 功能。但这不是 HTML。 这个问题有什么问题? 必须有一个 HTML 等价于 require first... 我第二个 jeroen 的问题:为什么对这个问题投反对票? -2 似乎并不值得。 +1 恢复平衡! ...不过,我可以看到有些人可能会反对使用模棱两可的词“床单”和使用require_once 而不是require(这似乎是个问题) 【参考方案1】:

这取决于您要包含的内容。包含 PHP 文件是不可能的,如果您想包含 CSS 样式表,请使用:

<link rel="stylesheet" type="text/css" href="yourstylefile.css" />

对于 Javascript 文件

<script type="text/javascript" src="yourscriptfile.js"></script>

当然,您必须将该代码放在标题标签之间。

【讨论】:

【参考方案2】:

不,HTML 中没有包含机制。除非你算上 SSI。

编辑:等等,“床单”?你是说 CSS 吗?

【讨论】:

不,对不起,我的意思是页面,我工作时间很长,并且患有偏头痛,我当时记不起正确的术语。我的意思是页面,而不是工作表。【参考方案3】:

是的,SSI 是最接近的。但是,有许多非服务器端的方法可以解决这个问题。一些 Web 开发应用程序具有 html 模板系统,可以在开发端复制服务器端包含的内容。例如,dreamweaver 允许您将可重复区域插入 HTML 模板。当您修改“包含”文件时,Dreamweaver 将修改所有使用该块的 HTML 文件。由于这不是一个真正的包含,而是一个 HTML 更新系统,如果您使用远程服务器,您必须重新上传这些文件,但如果您必须坚持使用纯 HTML,它可以使项目更易于管理和比使用 iframe 要好得多。

最后,还有让 Javascript 构建重复代码块的选项。您可以简单地在每个页面 &lt;script type="text/javascript" src="templater.js"&gt;&lt;/script&gt; 上包含一个通用 javascript 库,并让它在客户端构建元素(通过 innerHTML 调用或将元素插入 DOM)。这有一个明显的缺点

    它需要 Javascript 才能工作 可能会与 SEO 混淆 它可能会减慢页面加载速度(无论如何从客户端)

在服务器端语言中使用适当的包含当然是最好的方法,但在紧要关头,这些都是潜在的替代方案。

【讨论】:

【参考方案4】:

从技术上讲,您可以在页面上创建一个 iframe,该 iframe 将加载和处理单独的页面,但它的功能不像 include 或 require 一次。对此,我知道没有其他选择。

【讨论】:

以上是关于是否有 require_once 的 HTML 变体?的主要内容,如果未能解决你的问题,请参考以下文章

PHP 检查 require_once() 内容是不是为空

是否值得使用 require_once() 来节省内存?

require_once的用法

致命错误:require_once() 使用绝对路径

重命名 require_once 函数的策略?

如何知道是不是通过 require_once() 调用了 php 脚本? [复制]