【问题标题】:PHP include does not show the full filePHP包含不显示完整文件
【发布时间】:2016-06-02 15:12:21
【问题描述】:

我正在尝试包含一个 html“片段”。这件作品只是一个顶部带有注释的标题:

<!--
Flex Web Core v2.0.2
Available in Perforce //FlexWeb/v2.0.2
Date: 2016-04-07T16:30:29
-->

<header class="page-header">
    <div class="page-header__inner"><a href="#" class="logo"></a>
    </div>
</header>

此文件名为header-basic.html

在我的 index.php 文件中,我有这一行来包含 header-basic.html

 <?PHP include 'node_modules/flexwebcore/dist/html/blocks/header-basic.html'; ?>

basic-header html 不显示(无论是 .php 还是 .html 文件)。当我检查代码时,我可以看到 header-basic 文件的注释,但我没有看到包含的 HTML。有什么想法吗?

这里包含它:

<body>
    <div class="page-container">
        <!-- Place Header Here -->
        <?PHP include 'node_modules/flexwebcore/dist/html/blocks/header-basic.html'; ?>
        <main class="page-main">
        </main>
    </div>
</body>

编辑 所以,我相信我发现只有页眉和页脚文件没有显示出来。包含&lt;header&gt;&lt;footer&gt; 标签有问题吗?包含它们的位置是有效的。

【问题讨论】:

  • 您如何检查生成的代码?您的浏览器花哨的 DOM 窗格不会显示实际的源代码,您必须使用 View Source 功能。 (顺便说一句,如果你的 PHP 文件没有 PHP 代码,我不会称它为 PHP。)
  • @ÁlvaroGonzález 我正在使用 Chrome 的元素检查器检查代码。它没有出现,但我能够将容器遍历到此标头应位于的位置。我看到的只是评论。当我查看页面源代码时,我看到了 HTML,但它根本没有显示在页面上。另外,我同意你的观点,它不是没有 php 的 php 页面,我正在测试 include 函数是否需要 php。
  • 那么很明显:您在不允许的地方注入了&lt;header&gt; 标签。我建议您使用HTML validator 验证您的页面并修复无效标记。
  • but it's not showing up at all on the page. - 您是否使用 css 设置标题元素的样式?
  • @ÁlvaroGonzález,你能解释一下在哪里不允许使用标题吗?它在正文中,我不知道标题规则有任何其他例外。 HTML Validator 验证就好了

标签: php html include


【解决方案1】:

js/global.js 中,您有一个 Javascript 函数正在删除 &lt;header&gt; 元素:

function page_type_change(page_type) {
    $('header').remove();
    $('footer').remove();
    $('.page-container').removeClass('page-container--footer-full');
    //$('.page-container').prepend(getHeader(page_type));
    $('body').append(getFooter(page_type));
    if(page_type === "pre" || page_type === "post"){
        $('.page-container').addClass('page-container--footer-full');
    } else {
        $('.page-container').removeClass('page-container--footer-full');
    }
}

您需要修复此功能或您的 HTML 以匹配您想要的。

【讨论】:

  • 是的!这是我的愚蠢!我多次阅读该代码,因为那是我最初包含标题(getHeader())的地方。伟大的侦探工作!谢谢!我正在从头开始构建一个页面构建器,我需要单击一个按钮来运行所有功能......
【解决方案2】:

而是尝试做 require_once 看看会发生什么.. 可能是因为 cmets.. 尝试删除 cmets 并试一试... 您可以将 cmets 放到主文件中。

【讨论】:

  • 谢谢你的回答,我都试过了,但都没有成功。
  • 你也可以小写
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-08
  • 2013-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多