我正忙着练习如何创建网站。现在我想以一种适合我的方式做到这一点。但目前我未能创建一个主页面,我以后可以填补空白。凭借标题很容易,我成功地在不同的页面上设置标题。但是当我尝试设置完整页面的内容时,我失败了。
这将是我填写空白的页面:
<!doctype html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="css/style.css">
<title><?php echo $title ?></title>
<?php require 'navigation.php'; ?>
</head>
<body>
<div class="content">
<?php $content ?>
</div>
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script src="js/bootstrap.min.js"></script>
</body>
<?php require 'footer.php'; ?>
</html>
以下代码将是我的索引页面。如果我按照下面的方式设置我的内容就可以了,但是我不满足于这个解决方案,因为等号后面的部分会被视为一个字符串而且感觉不太整洁。
<?php $title = "Home";?>
<?php $content = "<div class='container bg-image'></div>" ?>
<?php require '..\resources\views\main.php';?>
所以我的问题是我能以更好的方式做到这一点吗?我该怎么做?
答案 0 :(得分:0)
您应该使用<?php include 'nameOfFile.php'?>
将php文件包含在另一个
答案 1 :(得分:0)
在学习如何编写PHP的这个阶段,我建议根据你在页面上的行踪来包含文件。
但在此之前,我想指出您没有回应代码中的内容。您编写了<?php $content; ?>
,但应该为当前方法编写<?php echo $content; ?>
。
现在,回到我的建议:
我们有这个文件结构:
/content/home.php
/content/about.php
/includes/navigation.php
/index.php
content
文件夹中的每个文件都可以包含原始HTML,您希望在此处显示<?php echo $content; ?>
好吧,让我们打开index.php
<?php
// Content of index.php
$defaultpage = 'home';
// We would like to display different pages based on the url
// Use the global get variable to figure out which page we want to display
$page = isset($_GET['page']) ? $_GET['page'] : $defaultpage;
// Here i used a short syntax for if and else. This code above is equal to:
//
// if (isset($_GET['page'])) {
// $page = $_GET['page'];
// } else {
// $page = $defaultpage;
// }
// Hardcoded list of available pages + the title each page should show
$pages = [
'home' => [
'title' => 'Welcome to my site',
'file' => 'home.php'
],
'about' => [
'title' => 'About me',
'file' => 'about.php'
]
];
// See if the requesed page is a available page by looking inside $pages
if (isset($pages[$page])) {
$page = $pages[$page];
}
else {
$page = $pages[$defaultpage];
}
// $page is now overwritten with an associative array containing
// both 'title' and 'file' for content.
// Let us prepare a variable containing the requested page.
$file = dirname(__FILE__)."/contents/".$page['file'].".php";
// If the file doesn't exist, stop execution with an error message
if (!file_exists($file)) {
exit('<h1>Page not found');
}
?>
<!doctype html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="css/style.css">
<title><?php echo $page['title']; ?></title>
<?php require 'navigation.php'; ?>
</head>
<body>
...
<div id="content">
<?php include($file); ?>
</div>
...
</body>
</html>
我不确定你为什么在头标记中包含了导航文件,但我认为你只是放错地方了。
答案 2 :(得分:0)
这可以用来发现我猜...
<?php
include('test.php') //this is how you can add an external php
/*but its recommended to use require rather than include as it
throws error to the browser which is really a serious threat*/
require('test.php')
?>
一切顺利...... !!!