批改状态:未批改
老师批语:

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>使用flex完成PHP中文网(移动端)的布局</title><link rel="stylesheet" href="index.css"></head><body><!-- 轮播图--><div class="banner"><img src="static/images/banner.jpg" alt=""></div><!-- 导航菜单--><nav><ul><li><a href=""><img src="static/images/html.png" alt=""><span>网站首页</span></a></li><li><a href=""><img src="static/images/JavaScript.png" alt=""><span>最近更新</span></a></li><li><a href=""><img src="static/images/code.png" alt=""><span>文章</span></a></li><li><a href=""><img src="static/images/sql.png" alt=""><span>博文</span></a></li></ul></nav><!--主体--><main><!--最新更新--><div class="new"><h3>最新更新</h3><div><a href=""><img src="static/images/1.jpg" alt=""></a><div><a href="">2019python自学视频</a><span>本课程适合想从零开始学习 Python 编程语言的开发人员。由浅入深的</span></div></div><div><a href=""><img src="static/images/2.jpg" alt=""></a><div><a href="">PHP开发免费公益直播课</a><span>本课程适合想从零开始学习 Python 编程语言的开发人员。由浅入深的</span></div></div><div><a href=""><img src="static/images/3.jpg" alt=""></a><div><a href="">从零开始到WEB响应式布局</a><span>本课程适合想从零开始学习 Python 编程语言的开发人员。由浅入深的</span></div></div><div><a href=""><img src="static/images/4.jpg" alt=""></a><div><a href="">PHP文件基础操作</a><span>本课程适合想从零开始学习 Python 编程语言的开发人员。由浅入深的</span></div></div></div><!--文章--><div class="article"><h3>文章</h3><div><div><a href="">5个PHP开发者应该知道的Composer小技巧</a><span>发布时间:2019-12-31</span></div><a href=""><img src="static/images/5.jpg" alt=""></a></div><div><div><a href="">解决PHP中Web程序中shell_exec()执行Shell脚本不成功问题</a><span>发布时间:2019-12-31</span></div><a href=""><img src="static/images/6.jpg" alt=""></a></div><div><div><a href="">PHP执行Linux命令的两个有用的函数exec和shell_exec</a><span>发布时间:2019-12-31</span></div><a href=""><img src="static/images/7.jpg" alt=""></a></div><div><div><a href="">php实现利用expat方式解析xml文件</a><span>发布时间:2019-12-31</span></div><a href=""><img src="static/images/8.jpg" alt=""></a></div></div><!-- 博文--><div class="article"><h3>博文</h3><div><div><a href="">5个PHP开发者应该知道的Composer小技巧</a><span>发布时间:2019-12-31</span></div><a href=""><img src="static/images/5.jpg" alt=""></a></div><div><div><a href="">解决PHP中Web程序中shell_exec()执行Shell脚本不成功问题</a><span>发布时间:2019-12-31</span></div><a href=""><img src="static/images/6.jpg" alt=""></a></div><div><div><a href="">PHP执行Linux命令的两个有用的函数exec和shell_exec</a><span>发布时间:2019-12-31</span></div><a href=""><img src="static/images/7.jpg" alt=""></a></div><div><div><a href="">php实现利用expat方式解析xml文件</a><span>发布时间:2019-12-31</span></div><a href=""><img src="static/images/8.jpg" alt=""></a></div></div></main><?php include __DIR__ . '/inc/public_footer.php' ?>
<?php// 图片路径const STATIC_PATH = 'static/';// 栏目导航$categories = [['id' => 1, 'name' => '文章', 'url' => 'list.php?cid=1'],['id' => 2, 'name' => '博客', 'url' => 'list.php?cid=2'],];// 模块导航$modules = [['id' => 1, 'name' => '视频', 'url' => 'module.php?cid=1'],['id' => 2, 'name' => '社区', 'url' => 'module.php?cid=2'],['id' => 3, 'name' => '我的', 'url' => 'module.php?mid=3'],];// 文章信息$goods = [['id' => 1,'name' => '浅谈PHP程序员如何修炼?','pic'=> 'images/1.jpg','time' => '2020-01-10','url'=> 'detail.php?id=1','text'=>'本篇文章给大家带来的内容是浅谈PHP程序员如何修炼?有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。','detail'=>'在过去的一年,我见过太多太多PHP的项目在重构过程中慢慢引进Laravel,并将Laravel作为项目首选开发框架。当然我也是如此,作为Laravel框架的早期使用者,我由衷的感觉Laravel在近些年内的地位还是很稳定的。有些人要说了,Laravel框架太重、运行速度太慢、blblblbl的各种原因,我只能说,羊毛出在羊身上,Laravel是组件化开发早期框架,感觉哪个慢就不加载哪个呗,哪个重就删掉不就行了,一天天不找解决方案,只会抛出问题,难道Laravel框架的开发者会按照小众个人意愿去改嘛其他的框架我很少了解,在这里就着重讲解下Laravel框架本身没什么好说的,讲些Laravel社区生态相关的事。','cid' => 1,],['id' => 2,'name' => '利用php实现验证邮箱格式是否正确','pic'=> 'images/2.jpg','time' => '2020-01-10','url'=> 'detail.php?id=2','text'=>'利用php实现验证邮箱格式是否正确的详细内容,更多请关注php中文网其它相关文章!','detail'=>'参数介绍:variable,(必需)规定要过滤的变量。filter,(可选)规定要使用的过滤器的 ID。默认是 FILTER_SANITIZE_STRING。options,(可选)规定一个包含标志/选项的关联数组或者一个单一的标志/选项。检查每个过滤器可能的标志和选项。','cid' => 2,],['id' => 3,'name' => 'php中文网一份年终汇报','pic'=> 'images/3.jpg','time' => '2020-01-10','url'=> 'detail.php?id=3','text'=>'望过去,展未来,2020新起点!在已过去的2019年,感谢大家的理解与信任,支持与陪伴!新年之际,猪哥携php中文网以及phpStudy所有同事,祝广大网友新年快乐!身体健康,生活美满!','detail'=>'尊敬的各位网友,php中文网和phpStudy定于2020年1月21日——2020年1月30日休假,1月31日(初七)正常上班。php中文网线上班学员为2月10号(正月十七)复课。放假期间微信公众号文章将停更,网站技术文章会有正常更新发布,如有疑问请各大群内咨询群主,谢谢!','cid' => 1,],['id' => 4,'name' => '利用百度快照变通下载安装 WordPress 插件','pic'=> 'images/4.jpg','time' => '2020-01-10','url'=> 'detail.php?id=4','text'=>'鉴于国内已两个多月无法正常访问 WordPress 官网的情况,下载安装更新 WordPress 插件成了问题,这里提供一个小技巧,帮你解决一下燃眉之急。','detail'=>'其实很简单,例如要下载比较常用的文章点击统计插件WP-PostViews,可以百度搜索“WP-PostViews”,找到官网插件下载页面的链接,点击“百度快照”,在快照页面,找到“Download”按钮,右键复制链接,然后用下载工具比如迅雷下载,最后WP后台上传安装或者FTP覆盖更新即可。注:由于快照并不是每天更新,如果某插件更新频繁,下载的插件可能并不是最新版本的。','cid' => 2,],['id' => 5,'name' => 'ThinkPHP6 任意文件操作漏洞分析','pic'=> 'images/5.jpg','time' => '2020-01-10','url'=> 'detail.php?id=5','text'=>'2020年1月10日,ThinkPHP团队发布一个补丁更新,修复了一处由不安全的SessionId导致的任意文件操作漏洞。','detail'=>'写入的文件名可控,那么写入的内容是否可控呢?分析发现,写入的内容就是创建session使用的内容。但是session的创建是由实际的后端业务逻辑来决定的,而默认环境下并没有创建session。因此,默认环境下无法做到任意文件写入。','cid' => 1,],['id' => 6,'name' => 'CentOS6.8下安装phpMyAdmin的方法','pic'=> 'images/6.jpg','time' => '2020-01-10','url'=> 'detail.php?id=6','text'=>'我的IP地址访问目录是在/var/www 下,所以我就将phpMyaAdmin放到www目录下','detail'=>'修改名字:mv phpMyAdmin-4.8.3-all-languages.tar.gz phpMyAdmin进入phpMyAdmin:cd phpMyAdmin复制并重复明命配置文件:cp config.sample.inc.php config.inc.php重启服务器(我安装的是nginx):service nginx restart重启MySql:service mysqld restart重启PHP:service php-fpm restart在浏览器地址栏里输入ip/phpMyAdmin:“192.168.71.131/phpMyAdmin”;(我的是虚拟机)用户名默认为root,密码就是数据库密码','cid' => 2,],['id' => 7,'name' => '通俗易懂理解PHP依赖注入容器','pic'=> 'images/7.jpg','time' => '2020-01-10','url'=> 'detail.php?id=7','text'=>'这也是很多通用设计模式的宗旨,就是把分散在各处的同一个功能的代码汇聚到一起','detail'=>'一个好的代码结构设计一定是松耦合的,这也是很多通用设计模式的宗旨,就是把分散在各处的同一个功能的代码汇聚到一起,形成一个模块,然后在不同模块之间通过一些细小的、明确的渠道进行沟通。','cid' => 1,],['id' => 8,'name' => '8 个 Laravel 模型时间戳使用技巧','pic'=> 'images/8.jpg','time' => '2020-01-10','url'=> 'detail.php?id=8','text'=>'默认情况下,Laravel Eloquent 模型默认数据表有 created_at 和 updated_at 两个字段。','detail'=>'如果数据表没有这两个字段,保存数据时 Model::create($arrayOfValues); —— 会看到 SQL error。Laravel 在自动填充 created_at / updated_at 的时候,无法找到这两个字段。禁用自动填充时间戳,只需要在 Eloquent Model 添加上一个属性:','cid' => 2,],];
<?php foreach ($categories as $category) : ?><div class="article"><h3>文章</h3><div><div><a href="">5个PHP开发者应该知道的Composer小技巧</a><span>发布时间:2019-12-31</span></div><a href=""><img src="static/images/5.jpg" alt=""></a></div></div><?php endforeach ?>

<div class="article"><h3><?php echo $category['name'] ?></h3><?php foreach ($articles as $article) : ?><div><div><a href="<?php echo $article['url'] ?>"><?php echo $article['name'] ?></a><span>发布时间:<?php echo $article['time'] ?></span></div><a href=""><img src="<?php echo STATIC_PATH . $article['pic'] ?>" alt=""></a></div><?php endforeach ?></div>

由上图中可以看出已经完成了数据配置文件中配置的文章信息,但信息没有分类显示,所以这里需要处理下,让各栏目调用各栏目 的信息
<!-- 使用if判断信息所属栏目,并只输出当前栏目的信息--><?php if ($category['id'] === $article['cid']) : ?><div><div><a href="<?php echo $article['url'] ?>"><?php echo $article['name'] ?></a><span>发布时间:<?php echo $article['time'] ?></span></div><a href=""><img src="<?php echo STATIC_PATH . $article['pic'] ?>" alt=""></a></div><?php endif ?>

这里的最新文章调用的是“文章”和”博文“两个栏目中的文章,并且随机调用
首先我们需要确定调用哪些文章(在信息数组中获得信息的KEY值)
<?php//获取文章数组中的随机文章的键名//array_rand($arr,int):随机获取数组($arr)中int个键名$newskeys = array_rand($articles,4);//根据获得的键名获得文章信息,并创建一个新的数组foreach ($newskeys as $key) {$news[] = $articles[$key];}?><main><!--最新更新--><div class="new"><h3>最新更新</h3><?php foreach ($news as $new) : ?><div><a href="<?php echo $new['url'] ?>"><img src="<?php echo STATIC_PATH . $new['pic'] ?>" alt=""></a><div><a href=""><?php echo $new['name'] ?></a><span><?php echo $new['text'] ?></span></div></div><?php endforeach ?></div>

刷新一次查看效果
<?php foreach ($categories as $category) : ?><li><a href="<?php echo $category['url'] ?>"><img src="<?php echo STATIC_PATH . $category['pic'] ?>" alt=""><span><?php echo $category['name'] ?></span></a></li><?php endforeach ?>
// 栏目导航$categories = [['id' => 1, 'name' => '文章55', 'pic' =>'images/code.png','url' => 'list.php?cid=1'],['id' => 2, 'name' => '博客', 'pic' =>'images/sql.png','url' => 'list.php?cid=2'],];

<a href="index.php" >首页</a><?php foreach ($modules as $module) : ?><a href="<?php echo $module['url'] ?>" ><?php echo $module['name'] ?></a><?php endforeach ?>

<?php include __DIR__ . '/inc/public_header.php' ?><?php//通过浏览器链接传递的参数获取栏目ID$cid = $_GET['cid'];//根据栏目ID获取栏目名称foreach ($categories as $category) {// 传递过来的栏目ID的数据类型为字符串需要转为整数型才可以调用数组内的信息// 使用intval(),将栏目id数值型字符串强制临时转为整数if ($category['id'] === intval($cid)) {$cateName = $category['name'];}}//根据栏目id, 获取对应的文章信息foreach ($articles as $article) {if ($article['cid'] === intval($cid)) {$news[] = $article;}}?><main><!--文章--><div class="article"><h3><?php echo $cateName ?></h3><?php foreach ($news as $article) : ?><div><div><a href="<?php echo $article['url'] ?>"><?php echo $article['name'] ?></a><span>发布时间:<?php echo $article['time'] ?></span></div><a href=""><img src="<?php echo STATIC_PATH . $article['pic'] ?>" alt=""></a></div><?php endforeach ?></div></main><?php include __DIR__ . '/inc/public_footer.php' ?>

<?php//通过浏览器链接传递的参数获取信息ID$id = $_GET['id'];//根据信息ID获取信息内容foreach ($articles as $article) {if ($article['id'] === intval($id)) {$news = $article;}}?><main><!--文章--><div class="article"><div><div><a href="<?php echo $news['url'] ?>"><?php echo $news['name'] ?></a><span>发布时间:<?php echo $news['time'] ?></span></div><a href=""><img src="<?php echo STATIC_PATH . $news['pic'] ?>" alt=""></a></div><p><?php echo $news['detail'] ?></p></div>

<?phpfunction getnews($articles,$num){$newskeys = array_rand($articles,4);foreach ($newskeys as $key) {$news[] = $articles[$key];}return $news;}$news = getnews($articles,4)?>
// 获取栏目名称function getCateName($cid, $categories){foreach ($categories as $category) {// 使用intval(),将栏目id数值型字符串强制临时转为整数if ($category['id'] === intval($cid)) {$cateName = $category['name'];}}return $cateName;}$cateName = getCateName($cid, $categories);// 获取该栏目所有商品function getArticle($cid, $articles){foreach ($articles as $article) {if ($article['cid'] === intval($cid)) {$news[] = $article;}}return $news;}$news = getArticle($cid, $articles);
function getarticle($id, $articles){foreach ($articles as $article) {if ($article['id'] === intval($id)) {$news = $article;}}return $news ;}$news = getarticle($id, $articles);
include | include_once:包含一个外部文件到页面,失败时不会终止程序,加上once仅能包含一次,防止重复加载包含
require |require_once:包含一个外部文件到页面,失败时会终止程序,加上once仅能包含一次,防止重复加载包含array_rand($arr,int);随机获取数组中int个键名__DIR__获取文件所在文件的绝对路径intval(),将数值型字符串强制临时转为整数die;调试时使用,此代码后的内容不解析
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号