我有一个PHP网页,设计类似于下面的布局。它保存为default.php
,旨在作为网站中所有页面的页面布局导入。 “A部分”和“部分B”中的内容对于所有页面都是相同的,但我想更改每个页面的“部分C”的内容。我该怎么做?
我知道我可以在.NET框架中使用“内容占位符”,但我如何在PHP中执行此操作?我是PHP的新手 - 非常感谢您的帮助。
+------------------------------+
| section A |
|-----+------------------------|
| | |
| | |
| | |
| B | section C |
| | |
| | |
+-----+------------------------+
答案 0 :(得分:1)
如果你问如何使用php页面作为模板,你可以采用一些不同的方法。
将您的母版页分成两部分,一部分在C部分之前,一部分在之后,然后包括每页之前/之后。
示例:
include('includes/masterA.php');
//INSERT PHP HERE
echo $content;
include('includes/masterB.php');
或者将您的PHP代码预先计算为内容变量,告诉母版页将其回显,并且由于包含将其视为一个大脚本,因此只需选择您预先指定的那个并回显结果。< / p>
示例:
//INSERT PHP HERE
$content = "textfromphp";
include('includes/master.php');
master.php:
echo "<div>Section A</div>";
echo "<div>Section B</div>";
echo "<div>Content:".$content."</div>";
答案 1 :(得分:1)
您可以使用“ob_start”捕获一个变量中的C部分内容 然后在default.php里面添加它在C部分
C节输出
<?php
ob_start();
echo "<div>Hello</div>";
$section_c = ob_get_contents();
ob_end_clean();
?>
如default.php
<html>
<body>
<div id="section-a">...</div>
<div id="section-b">...</div>
<div id="section-c">
<?php echo $section_c ?>
</div>
<body>
</html>
或者,最好使用Twig Template Engine,它以干净和标准的方式解决这个问题。 您可以在 Twig
上找到有关Twig Installation and Configuration以及安装和配置指南的更多信息答案 2 :(得分:1)
根据您的评论,如果您使用require包含default.php,则只需将default.php中的内容替换为变量,然后在需要default.php之前设置该变量。
举个例子:
//index.php
$page = isset($_GET['p'])? $_GET['p'] : 'home';
$pages = ['home','about','contact'];
$include = in_array($page, $pages) ? $page . '.php' : 'error.php';
require_once('default.php');
//default.php
<html>
<head></head>
<body>
<div class="header">
<h1>Page header</h1>
</div>
<div class="leftcol">
<p>left column contents</p>
</div>
<div class="main">
<?php include($include);?>
</div>
</body>
</html>
然后您将访问不同的页面,如下所示:
example.com/ //would show homepage
example.com/?p=about //would show about page
example.com/?p=blahfff //would show error page
答案 3 :(得分:0)
在您的情况下,页面类,当您到达C部分时,您需要做的就是拥有一个将被回显的var命名内容。因此脚本应该像这样加载:
所以你点击的每一件事以及你去的任何地方,结果必须返回给一个方法,让我们称之为在页面类中继的displayContent($content)
。换句话说,页面类需要包含在要在C部分中显示的每个php文件中,并且每次调用displayContent($content)
方法,在文件的末尾,$ content填充HTML代码: d
希望它有所帮助!
继续编码!
战神。
答案 4 :(得分:-1)
您可以使用PHP include
函数执行此操作,请考虑以下示例。
如default.php:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<header><?php include 'sec-a.php';?></header>
<section>
<aside><?php include 'sec-b.php';?></aside>
<aside><?php include 'sec-c.php';?></aside>
</section>
</body>
</html>
部分-a.php只会:
<code>to appear in section A</code>
部分-b.php:
<code>to appear in section B</code>
部分-c.php:
<code>to appear in section C</code>