电影网站案例(多维数组分类ID使用)-2019年9月19日2
程序员文章站
2022-03-20 23:18:52
...
1、index.php
实例
<?php // 加载公共头部 include __DIR__ . "/header.php"; // 常量,带__ __ 叫 魔术常量 // 常量的意思: 不变的量,不变的数据 // 魔术常量: 会根据环境,进行变化的量, 它的标识就是: __ __ // echo __DIR__; // 使用双重循环来遍历二个数组 // 外层遍历栏目数组$cates, 内层根据栏目id来查询对应的影视剧信息 foreach ($cates as $cate) { echo "<h2>{$cate['alias']}</h2>"; echo '<ol>'; // 遍历影视剧数组 foreach ($movies as $movie) { // 判断当前影视剧所属栏目是否与当前栏目id相同? // if 判断, 如果分类里的id 等于 视频里的分类id,就把 电影名 输出出来 if ($cate['cate_id'] === $movie['cate_id']) { echo "<li>"; // a标签里的href没有 http:// https:// // detail.php // mov_id 影视id echo "<a href='detail.php?mov_id=" .$movie['mov_id']. "'>"; echo "{$movie['name']}"; echo "</a></li>"; } } echo '</ol>'; } // 加载公共底部 include __DIR__ . '/footer.php';
运行实例 »
点击 "运行实例" 按钮查看在线实例
2、header.php
实例
<?php // 视频相关的 作为一个数组,二维数组 $movies = [ [ // 视频ID 'mov_id'=>1, 'name'=>'倚天屠龙记', 'image'=>'1.jpg', 'detail'=>'元朝末年,群雄纷起,武林动荡。江湖传闻,得到屠龙刀倚天剑者,可以成为武林至尊,号令天下,莫敢不从。一时间风云四起,引发了武林中对屠龙刀倚天剑的争夺,几段姻缘和孽缘也由此产生。武当派张翠山与天鹰教殷素素… ', // 分类ID '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'=>'' ]; ?> <!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> <!-- 数组循环,跑圈。 跑一圈,完成一次,完成之前,我们要把需要整理的数据 整理下 --> <!-- foreach 可以在php中 写一半 --> <!-- php开始 循环foreach php结束 --> <!-- 要执行整理的数据,放在另外的php标签里 --> <!-- foreach : 这个代表什么意思。 它是{的意思 --> <?php foreach ($cates as $cate){ ?> <li> <!-- 跳转到一个页面,通过咱们学的get传值,让另一个php代码,知道我们的参数值。 --> <a href="list.php?cate_id=<?php echo $cate['cate_id']; ?>"> <!-- http://www.ouyangke.com/9192/list.php?cate_id=1 --> <?php echo $cate['alias'] ?> </a> </li> <!-- endforeach; 相当于 foreach 里的 } --> <?php } ?> </ul> </div> <a href="www.baidu.com"> <!-- list.php 是本文件 同目录 的另一个文件。 本文件是:header.php 本目录是:9192 另一个文件:list.php 这里文件在哪里呢? 在9192目录下 ? 告诉浏览器,我们开始传参了,get传值 cate_id= cate_id 是 传值的 key(下标) = 号后面是值 http://www.ouyangke.com/9192/list.php?cate_id=1 list.php?cate_id=2 list.php?cate_id=3 我你他 --> </a> <!-- header.php 公用的 顶部文件, 头部文件 -->
运行实例 »
点击 "运行实例" 按钮查看在线实例
3、footer.php
实例
<!--底部版权--> <div class="footer"> <p class="copyright">商味书屋 © 版权所有</p> </div> </body> </html>
运行实例 »
点击 "运行实例" 按钮查看在线实例
4 list.php
实例
<?php // 加载公共头部 include __DIR__ . '/header.php'; // 将当前栏目id,, 使用GET方式,通过URL地址传递到列表模板list.php // 获取url 上的 传值 $cate_id = $_GET['cate_id']; // 注意: url中的内容都是字符串, 整数字符串先做类型转换才可以 //echo gettype($cate_id);die; // intval 把其他类型,转为整型 // 不转换:不知道用户传来的是什么类型的数据,长度这些都不知道。 就可能影响后面的体验 $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__ . '/footer.php';
运行实例 »
点击 "运行实例" 按钮查看在线实例
5、detail.php
实例
<?php // 加载公共头部 include __DIR__ . '/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="static/images/'.$movie['image'].'" alt="" width="300">'; echo "<p style='text-indent: 2em'>{$movie['detail']}</p>"; } }; // 加载公共底部 include __DIR__ . '/footer.php';
运行实例 »
点击 "运行实例" 按钮查看在线实例
上一篇: PHP数据库操作基础入门