【问题标题】:Include content with php使用 php 包含内容
【发布时间】:2019-10-01 07:19:19
【问题描述】:

我想创建一个类似 Wordpress 的函数,使用 php 在单个页面中加载可变内容。为了更好地理解我想要实现的目标,这里有一个例子:我有一个 index.php 文件。它通过 php "include" 命令包括三个部分(页眉、内容和页脚)。现在所有页面的页眉和页脚都相同,但我需要能够在同一页面中包含不同的内容(基于我单击的导航锚点)。问题是,除非我有特定的基本 url(我没有,因为基本 url 将是相同的 index.php),否则我不知道如何提取特定内容。请让我知道这是否可能?如果是,如何?提前致谢。

【问题讨论】:

  • 使用 GET 参数来决定要加载的内容。 index.php?content=foo。 (如何在您的脚本中访问该值是任何中等体面的初学者教程都应该能够向您解释的内容。)
  • Stack Overflow 不用于设计讨论。您需要就您编写的实际代码提出具体问题,而不是关于如何创建应用程序的一般问题。
  • @Barmar 对不起。会记住这一点。

标签: php switch-statement


【解决方案1】:

我同意制作的 cmets,但是,我也相信如果您今天不尝试自己学习新东西,那将是一种耻辱!提示:有很多方法可以做你想做的事,或多或少复杂,所以不要退缩并潜入一些教程;我希望这会激励你(并阻止你跑到 WP)!

因此,为了帮助您入门,请设置以下目录结构:

  1. 我们有一个内容文件夹,其中包含您想要“导航到”的所有不同页面
  2. 我们有一个 header.phpfooter.php,在每个对 index.php 的请求中都会被拉入。
  3. 我们有index.php,这是所有魔法发生的页面。

让我们看一下代码(我假设你在 localhost 上运行它):

header.php

<!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8'>
    <meta http-equiv='X-UA-Compatible' content='IE=edge'>
    <title>Test</title>
    <meta name='viewport' content='width=device-width, initial-scale=1'>
    <link rel='stylesheet' type='text/css' media='screen' href='main.css'>
</head>
<body>
<a href = "http://localhost/your/path/to/index.php?page=page0">page0</a>
<a href = "http://localhost/your/path/to/index.php?page=page1">page1</a>

header.php 中,我们定义了两个&lt;a href =...&gt;。这些链接到相同的目的地 index.php,但它们各自设置了不同的查询字符串变量:?page=page0?page=page1

查询字符串变量page 将被index.php$_GET['page'] 拾取以分别拉入page0.phppage1.php 的内容。

index.php

<?php

require "header.php";

if(isset($_GET['page'])) {
    $target = "content/" . $_GET['page'] . ".php";
    require $target;
}

require "footer.php";

如您所见,index.php 等待$_GET['page'] 被设置,即点击一个链接,然后获取$_GET['page'] 变量中设置的信息并使用它来require 正确的内容(即page0.phppage1.php)。

用适当的页脚关闭您的 HTML...

footer.php

</body>
</html>

最后是内容页面:

page0.php

<?php
echo "Page 0 content";

page1.php

<?php
echo "Page 1 content";

【讨论】:

  • 嗯,这说明了一切。谢谢。我对此并不陌生,因此要避免使用 WordPress。这很有帮助。
猜你喜欢
  • 2011-07-08
  • 1970-01-01
  • 2011-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多