:-: 前端页面与内容分析

1、资源目录结构

// 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目录,公用资源图片

图片名称 图片名称 图片名称

2、首页制作与页面拆分

2.1 知识点

2.2 目录结构

<?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; ?> &copy; 版权所有</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; ?>&copy; 版权所有</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; ?>&copy; 版权所有</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; ?> &copy; 版权所有</p>
		</div>
	</body>
</html>

:-: 分离页面公共部分

3.1 知识点

image目录,公用资源图片

图片名称 图片名称 图片名称 图片名称 图片名称 图片名称 图片名称 图片名称 图片名称

3.2 目录结构

<?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; ?> &copy; 版权所有</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'; ?>

:-: 制作公共模板

1、什么是模板

2、创建模板数据

<?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>

3、创建首页

<?php
// 加载公共头部
include __DIR__ . "/inc/header.php";

	// 使用双重循环来遍历二个数组
	// 外层遍历栏目数组$cates, 内层根据栏目id来查询对应的影视剧信息
	foreach ($cates as $cate) {
		echo "<h2>{$cate['alias']}</h2>";
		echo '<ol>';

		// 遍历影视剧数组
		foreach ($movies as $movie) {
			// 判断当前影视剧所属栏目是否与当前栏目id相同?
			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';

4、列表模板

<?php
// 加载公共头部
include __DIR__ . '/inc/header.php';

	// 将当前栏目id,, 使用GET方式,通过URL地址传递到列表模板list.php
	$cate_id = $_GET['cate_id'];

	// 注意: url中的内容都是字符串, 整数字符串先做类型转换才可以
	//echo gettype($cate_id);die;
	$cate_id = intval($cate_id);  // 函数转换

	// 将index.php中的主体代码简单修改一下
	// 只显示一个栏目, 不需要做循环, 只需要作一个判断即可
	foreach ($cates as $cate) {
		// 在index.php基础上加一层判断,确定是否是当前栏目即可
		// 如果上面的GET参数没有做类型转换, 那么这里就不能用===恒等
		// 必须使用==, 以触发系统的类型自动转换机掉, 我还是建议全等操作
		// == : 只比较值是否相等,  === : 值与类型,都必须完全相同
		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';

5、内容页模板

<?php
// 加载公共头部
include __DIR__ . '/inc/header.php';

	$mov_id = intval($_GET['mov_id']);

	// 复制list.php模板直接修改
	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';