【问题标题】:Nesting PHP (to implement master & content pages)嵌套 PHP(实现主页面和内容页面)
【发布时间】:2017-07-09 01:07:34
【问题描述】:

在这里,我认为我很聪明。使用 PHP,我创建了一个母版页 master.php,它注入了以下内容页面之一:content1.phpcontent2.php 等。我没想到我希望能够使用内容页面中的 PHP。

master 注入这样的内容:

<?php
if($pageContentHtml != '') {
    echo $pageContentHtml;
}
?>  

当然,当$pageContentHtml 包含任何&lt;?php ?&gt; 块时,页面不会按预期呈现。

我阅读了有关使用 PHP 的 ob_* 函数来缓冲输出的信息,但我不太清楚这是否能让我做我想做的事。会吗?这可能吗?

示例content.php 文件:

<div class="row">
<div class="row-centered">
    <div class="col-md-12">
        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque...</p>
    </div>
</div>
</div>

<div class="row">
<div class="row-centered">
    <div class="col-md-12">

        <?php
            $bookFileNames = array(
                "book-cover1.jpg"
                ,"book-cover2.jpg"
                ,"book-cover3.jpg"
                ,"book-cover4.jpg"
                .
                .
                .
            );

            for($i=0; $i<count($bookFileNames); ++i) {
                echo '<a href="/images/books/' . $bookFileNames[$i] . '" class="book-title" data-toggle="lightbox" data-gallery="book-covers"><img src="/images/books/' . $bookFileNames[$i] . '" class="img-fluid"></a>';
            }
        ?>

    </div>
</div>
</div>

【问题讨论】:

  • 在不知道 $pageContentHtml 包含什么或其他 PHP 文件中的内容的情况下,我们不会有太大帮助。 ob_start() 可能会有所帮助,但如果不了解更多信息就很难说。
  • 哦,我认为这无关紧要。至少,我希望这是一个通用的母版页解决方案,它并不重要。内容包含可能包含 PHP 的 HTML。我将添加一个示例。我希望包含“内联”吗? PHP 而不是从文件中加载它。
  • 我添加了内容示例。为什么投反对票?

标签: php master-pages


【解决方案1】:

您可以使用include()require() 来包含内容页面,而不是阅读其内容。包含后,PHP 将正常处理:

include('content1.php');

【讨论】:

  • 我没有意识到 OP 没有这样做。我只是认为这是不完整的代码。克雷格,这就是您如何将其他 PHP 代码正确地包含到现有文件中以便进行处理的方式......
  • 如果我理解正确,内容应该是一个 PHP 文件,如果内容包含 HTML,它主要是,那么它应该使用 echo()?
  • @CraigSilver 该文件可以包含 HTML 和 PHP(PHP 需要被 &lt;?php?&gt; 标签正确包围),echo() 不是必需的,除非您希望将 HTML 嵌入其中其他 PHP 代码。
  • 啊,是的,我刚刚测试过。我做出了错误的假设,即包含的 PHP 文件将包含 PHP 代码,类似于包含的 JavaScript 文件如何包含 JavaScript。我在做一些不必要的花哨的事情,而不是使用include('content1.php');。我会接受这个答案。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多