static: 公共静态资源目录,如css,images,js
// style.css文件
.header {
background-color: brown;
height: 30px;
}
.nav li {
list-style:none;
min-width:80px;
line-height: 30px;
float: left;
}
.nav li a {
text-decoration: none;
color: white;
}
.nav {
overflow: hidden;
}
.footer {
height: 30px;
background-color: #636363;
color: white;
text-align: center;
line-height: 30px;
}
image目录,公用资源图片
- 数组:
- 索引数组: 键名是默认递增整数索引
- 关联数组: 键名是字符串
- 数组成员的访问: 按键名访问
- 数组的遍历: foreach()
- 二维数组的定义与访问
<?php
$headline = '欧阳克电影';
$copyright = '欧阳克';
$navs = [
'gc'=>'国产好剧',
'om'=>'欧美猛片',
'rh'=>'日韩新片'
];
$movies = [
['倚天屠龙记', '都挺好','如果可以这样爱'],
['复仇者联盟4', '波西米亚狂想曲','阿丽塔'],
['情书', '天空之城', '龙猫']
];
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="/static/css/style.css">
<title><?php echo $headline ?></title>
</head>
<body>
<!--头部导航-->
<div class="header">
<ul class="nav">
<li><a href="index.php">首页</a></li>
<?php foreach ($navs as $key=>$nav){ ?>
<li><a href="<?php echo $key.'.php'; ?>"><?php echo $nav; ?></a></li>
<?php } ?>
</ul>
</div>
<!--国产原创-->
<h2><?php echo $navs['gc']; ?></h2>
<ol>
<?php foreach ($movies[0] as $movie){ ?>
<li><a href="#"><?php echo $movie; ?></a></li>
<?php } ?>
</ol>
<!--欧美猛片-->
<h2><?php echo $navs['om']; ?></h2>
<ol>
<?php foreach ($movies[1] as $movie){ ?>
<li><a href="#"><?php echo $movie; ?></a></li>
<?php } ?>
</ol>
<!--日韩推荐-->
<h2><?php echo $navs['rh']; ?></h2>
<ol>
<?php foreach ($movies[2] as $movie){ ?>
<li><a href="#"><?php echo $movie; ?></a></li>
<?php } ?>
</ol>
<!--底部版权-->
<div class="footer">
<p class="copyright"><?php echo $copyright; ?> © 版权所有</p>
</div>
</body>
</html>
<?php
$copyright = '欧阳克';
$movies = ['倚天屠龙记', '都挺好','如果可以这样爱'];
$navs = [
'gc'=>'国产好剧',
'om'=>'欧美猛片',
'rh'=>'日韩新片'
];
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="/static/css/style.css">
<title><?php echo $navs['gc']; ?></title>
</head>
<body>
<!--头部导航-->
<div class="header">
<ul class="nav">
<li><a href="index.php">首页</a></li>
<?php foreach ($navs as $key=>$nav){ ?>
<li><a href="<?php echo $key.'.php'; ?>"><?php echo $nav; ?></a></li>
<?php } ?>
</ul>
</div>
<h2><?php echo $navs['gc']; ?></h2>
<img src="/images/1.jpg" alt="" width="300">
<!--对于数组,循环遍历更方便-->
<ol>
<?php foreach ($movies as $movie){ ?>
<li><a href=""><?php echo $movie; ?></a></li>
<?php } ?>
</ol>
<!--底部版权-->
<div class="footer">
<p class="copyright"><?php echo $copyright; ?>© 版权所有</p>
</div>
</body>
</html>
<?php
$copyright = '欧阳克';
$movies = ['复仇者联盟4', '波西米亚狂想曲','阿丽塔'];
$navs = [
'gc'=>'国产好剧',
'om'=>'欧美猛片',
'rh'=>'日韩新片'
];
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="/static/css/style.css">
<title><?php echo $navs['om']; ?></title>
</head>
<body>
<!--头部导航-->
<div class="header">
<ul class="nav">
<li><a href="index.php">首页</a></li>
<?php foreach ($navs as $key=>$nav){ ?>
<li><a href="<?php echo $key.'.php'; ?>"><?php echo $nav; ?></a></li>
<?php } ?>
</ul>
</div>
<h2><?php echo $navs['om']; ?></h2>
<img src="/images/4.jpg" alt="" width="300">
<!--对于数组,循环遍历更方便-->
<ol>
<?php foreach ($movies as $movie){ ?>
<li><a href=""><?php echo $movie; ?></a></li>
<?php } ?>
</ol>
<!--底部版权-->
<div class="footer">
<p class="copyright"><?php echo $copyright; ?>© 版权所有</p>
</div>
</body>
</html>
<?php
$copyright = '欧阳克';
$movies = ['情书', '天空之城', '龙猫'];
$navs = [
'gc'=>'国产好剧',
'om'=>'欧美猛片',
'rh'=>'日韩新片'
];
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="/static/css/style.css">
<title><?php echo $navs['rh']; ?></title>
</head>
<body>
<!--头部导航-->
<div class="header">
<ul class="nav">
<li><a href="index.php">首页</a></li>
<?php foreach ($navs as $key=>$nav){ ?>
<li><a href="<?php echo $key.'.php'; ?>"><?php echo $nav; ?></a></li>
<?php } ?>
</ul>
</div>
<h2><?php echo $navs['rh']; ?></h2>
<img src="/images/7.jpg" alt="" width="300">
<!--对于数组,循环遍历更方便-->
<ol>
<?php foreach ($movies as $movie){ ?>
<li><a href=""><?php echo $movie; ?></a></li>
<?php } ?>
</ol>
<!--底部版权-->
<div class="footer">
<p class="copyright"><?php echo $copyright; ?> © 版权所有</p>
</div>
</body>
</html>
- 页面公共部分分离的优点
- 外部文件加载语句:
include: 加载失败,不会终止当前脚本,只会发出警告
require: 加载失败, 终止当前脚本的执行,是致命错误
include_once / require_once: 仅允许加载一次
image目录,公用资源图片
<?php
$copyright = '欧阳克';
$movies = [];
$movies[] = ['倚天屠龙记', '都挺好','如果可以这样爱'];
$movies[] = ['复仇者联盟4', '波西米亚狂想曲','阿丽塔'];
$movies[] = ['情书', '天空之城', '龙猫'];
$navs = [
'gc'=>'国产好剧',
'om'=>'欧美猛片',
'rh'=>'日韩新片'
];
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="/static/css/style.css">
<title><?php echo $navs['gc']; ?></title>
</head>
<body>
<!--头部导航-->
<div class="header">
<ul class="nav">
<li><a href="index.php">首页</a></li>
<?php foreach ($navs as $key=>$nav){ ?>
<li><a href="<?php echo $key.'.php'; ?> "><?php echo $nav; ?></a></li>
<?php } ?>
</ul>
</div>
<!--底部版权-->
<div class="footer">
<p class="copyright"><?php echo $copyright; ?> © 版权所有</p>
</div>
</body>
</html>
<?php require __DIR__ . '/inc/header.php'; ?>
<h2><?php echo $navs['gc']; ?></h2>
<ol>
<?php foreach ($movies[0] as $movie){ ?>
<li><a href=""><?php echo $movie; ?></a></li>
<?php } ?>
</ol>
<h2><?php echo $navs['om']; ?></h2>
<ol>
<?php foreach ($movies[1] as $movie){ ?>
<li><a href=""><?php echo $movie; ?></a></li>
<?php } ?>
</ol>
<h2><?php echo $navs['rh']; ?></h2>
<ol>
<?php foreach ($movies[2] as $movie){ ?>
<li><a href=""><?php echo $movie; ?></a></li>
<?php } ?>
</ol>
<?php require __DIR__ . '/inc/footer.php'; ?>
<?php require __DIR__ . '/inc/header.php'; ?>
<h2><?php echo $navs['gc']; ?></h2>
<img src="/images/1.jpg" alt="" width="300">
<ol>
<?php foreach ($movies[0] as $movie){ ?>
<li><a href=""><?php echo $movie; ?></a></li>
<?php } ?>
</ol>
<?php require __DIR__ . '/inc/footer.php'; ?>
<?php require __DIR__ . '/inc/header.php'; ?>
<h2><?php echo $navs['om']; ?></h2>
<img src="/images/1.jpg" alt="" width="300">
<ol>
<?php foreach ($movies[1] as $movie){ ?>
<li><a href=""><?php echo $movie; ?></a></li>
<?php } ?>
</ol>
<?php require __DIR__ . '/inc/footer.php'; ?>
<?php require __DIR__ . '/inc/header.php'; ?>
<h2><?php echo $navs['rh']; ?></h2>
<img src="/images/3.jpg" alt="" width="300">
<ol>
<?php foreach ($movies[2] as $movie){ ?>
<li><a href=""><?php echo $movie; ?></a></li>
<?php } ?>
</ol>
<?php require __DIR__ . '/inc/footer.php'; ?>
- 模板是用来展示动态数据的载体
- 在实际项目中, 许多页面的结构是完全相同的,只是数据不同
- 对于这些页面, 可以创建一个模板, 在调用时填充上对应数据即可
- 通过模板技术, 可以极大的简化Web开发工作
- PHP天生就是一个模板语言,非常适合创建这种动态页面
- 实际项目中, 模板中的数据应该来自数据库
- 数据表查询结果,大多是一个二维数组
- 所以, 我们先用二维数组来模拟数据表中的数据
- 这些动态数据需要在多个页面中调用,所以放在公共文件中
- 这里选择直接创建在
inc/header.php中
<?php
$movies = [
[
'mov_id'=>1,
'name'=>'倚天屠龙记',
'image'=>'1.jpg',
'detail'=>'元朝末年,群雄纷起,武林动荡。江湖传闻,得到屠龙刀倚天剑者,可以成为武林至尊,号令天下,莫敢不从。一时间风云四起,引发了武林中对屠龙刀倚天剑的争夺,几段姻缘和孽缘也由此产生。武当派张翠山与天鹰教殷素素… ',
'cate_id'=>1
],
[
'mov_id'=>2,
'name'=>'都挺好',
'image'=>'2.jpg',
'detail'=>' 苏母的的突然离世打破了这个家庭外表的平静,意想不到的隐患层层显露,对毫无主见却又自私、小气的苏父的安置和后续生活问题,引发了远在国外的大哥与本城的二哥、小妹三家规律生活的不再。一直被苏母压制的苏父翻… ',
'cate_id'=>1
],
[
'mov_id'=>3,
'name'=>'如果可以这样爱',
'image'=>'3.jpg',
'detail'=>'一对已婚男女突然徇情自杀,以为可以结束这一切,却不料悲剧才刚刚开始——他们的爱人,耿墨池和白考儿,同时在葬礼上邂逅。面对同样的背叛他们同时选择报复但又同时爱上彼此,注定饱受打击和折磨。然而他们想真心拥… ',
'cate_id'=>1
],
[
'mov_id'=>4,
'name'=>'复仇者联盟4',
'image'=>'4.jpg',
'detail'=>'《复仇者联盟4:终局之战》将是漫威宇宙“无限传奇”(The Infinity Saga)的终结篇,是漫威电影宇宙十年的一个重要节点,结束部分英雄电影的故事,但也将展开新的剧情,呈现新的更为广阔宏大的宇…',
'cate_id'=>2
],
[
'mov_id'=>5,
'name'=>'波西米亚狂想曲',
'image'=>'5.jpg',
'detail'=>'弗雷迪·默丘里成名前在机场做行李搬运工。有一天,默丘里毛遂自荐加入杰·泰勒与布莱恩·梅的乐团,恰巧当天原本的主唱辞职,默丘里用自己横跨四个八度的超广音域说服两人,从此开启皇后乐团的摇滚传奇!',
'cate_id'=>2
],
[
'mov_id'=>6,
'name'=>'阿丽塔:战斗天使',
'image'=>'6.jpg',
'detail'=>'弗雷迪·默丘里成名前在机场做行李搬运工。有一天,默丘里毛遂自荐加入杰·泰勒与布莱恩·梅的乐团,恰巧当天原本的主唱辞职,默丘里用自己横跨四个八度的超广音域说服两人,从此开启皇后乐团的摇滚传奇!',
'cate_id'=>2
],
[
'mov_id'=>7,
'name'=>'情书',
'image'=>'7.jpg',
'detail'=>'日本神户某个飘雪的冬日,渡边博子(中山美穗)在前未婚夫藤井树的三周年祭日上又一次悲痛到不能自已。正因为无法抑制住对已逝恋人的思念,渡边博子在其中学同学录里发现“藤井树” 在小樽市读书时的地址时,依循着…',
'cate_id'=> 3
],
[
'mov_id'=>8,
'name'=>'天空之城',
'image'=>'8.jpg',
'detail'=>'韩书珍将两个女儿的教育问题和对丈夫的贤内助工作都做得井井有条,在天空之城之中也是备受瞩目的女王,但其实书珍一直隐藏着不为人所知的秘密。李秀林是个充满了关怀和情感丰沛的童话作家,在书珍的引导之下成为了天…',
'cate_id'=>3
],
[
'mov_id'=>9,
'name'=>'龙猫',
'image'=>'9.jpg',
'detail'=>'为了方便妻子草壁靖子养病,草壁达郎决定带着两个女儿草壁皋月和草壁米搬到草壁靖子所在疗养院附近的乡下,父女三人入住了一间年久失修的老房子。小姐妹俩很快发现看似平凡无奇的乡下有很多神奇的事物,无人居住的房…',
'cate_id'=>3
],
];
$cates = [
['cate_id'=>1, 'name'=>'gc', 'alias'=>'国产好剧'],
['cate_id'=>2, 'name'=>'om', 'alias'=>'欧美猛片'],
['cate_id'=>3, 'name'=>'rh', 'alias'=>'日韩新片'],
];
$system = [
'sys_id'=>1,
'title'=>'私人影院',
'desc'=>'收集全网最新最全的影视资源',
'key'=>'国产,欧美,日韩',
'copy'=>'php中文网'
]
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="../static/css/style.css">
<meta name="description" content="<?php echo $system['desc'] ?>">
<meta name="keywords" content="<?php echo $system['key'] ?>">
<title><?php echo $system['title'] ?></title>
</head>
<body>
<!--头部导航-->
<div class="header">
<ul class="nav">
<li><a href="index.php">首页</a></li>
<?php foreach ($cates as $cate) : ?>
<li><a href="list.php?cate_id=<?php echo $cate['cate_id']; ?>"><?php echo $cate['alias'] ?></a></li>
<?php endforeach; ?>
</ul>
</div>
index.php: 首页入口
- 做为入口文件,必须具备二个基本功能
- 显示出整个项目的基本内容
- 创建到达其它页面的链接入口
<?php
include __DIR__ . "/inc/header.php";
foreach ($cates as $cate) {
echo "<h2>{$cate['alias']}</h2>";
echo '<ol>';
foreach ($movies as $movie) {
if ($cate['cate_id'] === $movie['cate_id']) {
echo "<li><a href='detail.php?mov_id=" .$movie['mov_id']. "'>{$movie['name']}</a></li>";
}
}
echo '</ol>';
}
include __DIR__ . '/inc/footer.php';
list.php: 栏目页模板
- 做为栏目页,只需要将
index.php改动二处即可
- 使用GET方式接收
index.php传过来的栏目id
- 将外层循环中的栏目名称显示语句放到内层循环中
<?php
include __DIR__ . '/inc/header.php';
$cate_id = $_GET['cate_id'];
$cate_id = intval($cate_id);
foreach ($cates as $cate) {
if ($cate['cate_id'] === $cate_id) {
echo "<h2>{$cate['alias']}</h2>";
echo '<ol>';
foreach ($movies as $movie) {
if ($cate['cate_id'] == $movie['cate_id']) {
echo "<li><a href='detail.php?mov_id=" .$movie['mov_id']. "'>{$movie['name']}</a></li>";
}
}
echo '</ol>';
break;
};
}
include __DIR__ . '/inc/footer.php';
detail.php: 详情页模板
- 做为详情页, 只需要将
list.php改动三处即可
- GET参数接收的影视剧的id
- 去掉外层循环, 不需要遍历栏目
- 添加一些自定义样式,显示影视剧详情内容
<?php
include __DIR__ . '/inc/header.php';
$mov_id = intval($_GET['mov_id']);
foreach ($movies as $movie) {
if ($movie['mov_id'] === $mov_id) {
echo "<h3>{$movie['name']}</h3>";
echo '<img src="/images/'.$movie['image'].'" alt="" width="300">';
echo "<p style='text-indent: 2em'>{$movie['detail']}</p>";
}
};
include __DIR__ . '/inc/footer.php';