对于包含的 HTML 代码片段文件,哪种命名约定是正确的?

Which naming convention is correct for included HTML code fragment files?

我确实有一个 index.php 文件,它通过 PHP 包含页面的不同部分。

例如,这将 HTML 页面的 部分包含到 index.php 文件中:

<!doctype html>
<html>
    <head>
        <?php include($_SERVER['DOCUMENT_ROOT']."/PATH-TO-FILE/head.php"); ?>
    </head>

    <body>
        ...
    </body>
</html>

"head.php"的内容可能是这样的:

<meta charset="utf-8">
<title>Title of page</title>
<meta name="description" content="Description text...">

...

<link rel="stylesheet" href="stylesheet.css">

...

and so on...

技术上 "head.php" 不是 PHP 文件,因为它不包含任何 PHP 代码。它也不是有效的 HTML 文件。它只是一个 HTML 代码片段。

到目前为止,我一直将这些 HTML 代码片段文件命名为 *.html 或 *.php.

我的问题是这是否正确?

给它一个文件扩展名是否明智?而不是 "head.php" 只是 "head"?

请记住,可以在服务器的 .htaccess 文件中设置有关 *.html 和 *.php 文件的缓存和过期的某些指令。删除文件扩展名并将其从 "head.php" 重命名为 "head" 可能会将其从 .htaccess 文件中提到的指令中排除。

在搜索时,我在 Whosebug 上发现了这个问题: What extension should I use for files containing fragments of HTML

但是这个问题是 6 年前提出的,那里提到了很多不同的文件扩展名,很难说使用哪一个。

任何人都可以就此问题给出更新的答案吗?

如果您使用 include,我强烈建议您使用 *.phpinclude 执行其中的代码,即使它是原始的 HTML。 (在这种情况下,它只是输出而没有进一步处理)

因此,对以这种方式输出的文件使用 *.php。 (否则,由于某种原因有一天在编辑器中使用 <?php 时,编辑器中的突出显示也可能会很糟糕;另外,如果有人直接打开 *.html 文件,他会看到原始代码)

如果您正在使用例如readfile()然后 使用*.html 突出显示它只是原始 HTML 代码,不会执行任何内容。

这基本上取决于您如何包含文件。

P.s.: 完全没有扩展名。不太可取,这通常是您用于二进制文件和目录的方式。请注意,扩展实际上只是为了让您监督发生的事情。

我会离开 php。您正在使用 php 包含该文件。本身头文件就没用了

如果您向该文件添加一些 php 以进行进一步开发,会怎样?添加 php 扩展不是一个有效的生命周期。

更重要的是存储这些文件的位置。将它们放在模板文件夹下会告诉任何人,这些文件是模板。