我在同一文件夹中有2个文件
layout.php
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title><?= isset($pageTitle) ? $pageTitle : '' ?></title>
</head>
<body>
<nav>
<ul>
<li><a href="">Home</a></li>
<li><a href="">About</a></li>
<li><a href="">Contact</a></li>
</ul>
</nav>
<div class="container">
HERE COMES THE CONTENT
</div>
</body>
</html>
view.php
<?php $pageTitle = 'Welcome'; ?>
<h1>Content</h1>
如果我想合并这两个文件并正确渲染视图怎么办? 对我造成问题的是$ pageTitle位于view.php内部 并且该view.php应该代替layout.php的“内容”
如何解决这个问题?
我尝试了一个接一个地添加文件,但是这样做不好,因为首先包含的文件会丢失下一个包含的文件中的变量。
我希望有人能理解这一点,并帮助我和其他人解决这样的问题。
答案 0 :(得分:1)
您可以将PHP和HTML文件合并为一个(当然,它仍然需要.php
扩展名才能正确处理)并动态创建内容。
<?php
// some PHP part
$pageTitle = 'Welcome';
$content = '<h1>Content</h1>';
// OR, for dynamic load (separated files)
ob_start();
include_once('some/html/file.html'); /* or it could be another PHP file echoing content */
$content = ob_get_contents();
ob_end_clean();
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title><?php echo (isset($pageTitle)) ? $pageTitle : ''; /* some other PHP part */ ?></title>
</head>
<body>
<nav>
<ul>
<li><a href="">Home</a></li>
<li><a href="">About</a></li>
<li><a href="">Contact</a></li>
</ul>
</nav>
<div class="container">
<?php echo $content; /* print the content */ ?>
</div>
</body>
</html>
我希望这就是您要的:)