目 录
摘要 1
关键词 1
1 基于PHP的编程类学习网站设计与实现 1
1.1 研究目的和研究意义 1
1.2 研究现状和发展趋势 2
1.3 本文研究内容 2
1.4 本章小结 2
2 开发语言与技术简介 2
2.1 HTML 2
2.2 CSS 2
2.3 JavaScript 3
2.4 jQuery和ajax 3
2.5 Bootstrap 3
2.6 Python和爬虫 3
2.7 PHP和Laravel 3
2.8 本章小结 3
3 网站分析和设计 4
3.1 网站需求分析 4
3.1.1 网站功能需求 4
3.1.2 网站性能需求 5
3.2 用例模型 5
3.2.1网站模型角色的确定 5
3.3 开发环境 7
3.4 整体功能分析 7
3.4.1 程序功能分析 7
3.4.2 程序流程分析 8
3.5 本章小结 10
4 系统详细设计与功能实现 11
4.1 数据库设计 11
4.1.1 数据库分析 11
4.1.2 数据库概念设计 11
4.1.3 数据库表 12
4.2 前端设计 14
4.2.1 用户注册页 14
4.2.2 用户登录页 15
4.2.3 首页 15
4.2.4 课程页 17
4.2.5 课件页 17
4.2.6 评论页 18
4.2.7 问答页 19
4.2.8 友情链接页 19
4.2.9 个人信息编辑页 20
4.3 后端设计 20
4.3.1 课程管理页 20
4.3.2 课程编辑页 21
4.3.3 课件添加页 21
4.3.4 网站配置页 22
4.4 本章小结 22
5 总结 23
5.1 工作总结 23
5.2 后续发展 23
致谢 23
参考文献 23

1.3 本文研究内容
本文研究的是如何制作一个编程类的慕课网站,让用户可以有效的学到编程技术,它可以学习课件,评论课程或课件,发表提问,还可以记笔记,在线编程等功能。它会使用多种Web技术,这将在第二章开发语言与技术简介中详细介绍,网站的系统分析与设计,会在第三章中详细介绍,具体的实现会在第四章中介绍,最后第五章是全文的总结,和对网站以后的展望,基本本文的研究方式就是如此。
1.4 本章小结
本章介绍了本文的研究目的和研究意义,然后了解了目前编程类慕课网站的研究现状和以后的发展趋势,最后说明了本文的研究方式,综上详细的了解了本站的建设背景。
2 开发语言与技术简介
该慕课网站使用到了多种Web技术,前端使用了HTML+CSS+JavaScript+ jQuery + Bootstrap,后端使用了PHP+Laravel+Python,在这些技术的搭配下,开发出一个完善的慕课网站,下面就依次介绍这些技术。
2.1 HTML
HTML即超文本标记语言,它通过标记符号来定义网页的各个部分,告诉浏览器该如何显示网页,可能很多人不认为这是一门编程语言,但这却是编写网页最重要的基础。目前HTML5已基本普及,各大浏览器厂商在最新的版本中都对HTML5中的新特性给予了支持,开发时只需简单的调下兼容性就可以在各大主流浏览器正常运行。
2.2 CSS
CSS即层叠样式表,英文名为Cascading Style Sheets,主要是用来定义网页上的样式,正是在CSS的美化下,能让一个网页看上去排版工整,赏心悦目,而且CSS还可以定义动画等。目前最新的CSS版本是CSS3,和HTML5一样,也有很多新特性,比如圆角表格、文字特效、动画属性、0更多的CSS选择器等等。
2.3 JavaScript
JavaScript是一种动态的脚本语言,运行在浏览器上,需要JavaScript解释器解释后才可运行。目前JavaScript广泛应用于Web应用开发中,用以来制作动态效果,而且也可以分担一些服务端的压力,因为可以在客户端页面中执行一些操作,在不发生网络请求的情况下,可谓是非常快捷便利。而且目前JavaScript的发展势头非常好,是因特网上最流行的脚本语言,用在数以百千万计的网页中,实现多种页面功能。
2.4 jQuery和ajax
jQuery是一个快而简的JavaScript框架,将许多JavaScript编写起来相对复杂的功能都封装了,使开发者用起来非常方便,大大的简化了JavaScript编程。而且学习起来也比较容易,语法简练,它的设计理念就是如此write less,do more,这在实际编程中就深有体会。并且在jQuery之上还有许多插件可供使用,它们是基于jQuery实现了多种多样的动态效果和功能。做出来的页面更加生动,交互更加人性化。
ajax即异步JavaScript和XML,用以快速建立动态页面。jQuery库中就有一套完整的执行异步请求函数,使我们想异步加载传输数据更加便利,我们可以在页面不刷新的情况下完成各种各样的操作,而这正是我们非常需要的,我们也会大量的使用这种技术。
2.5 Bootstrap
Bootstrap是一个前端框架,它来自Twitter的两位工程师,基于HTML、CSS、JavaScript,是时下最流行使用最广泛的前端框架。Bootstrap有CSS样式和JavaScript组件两大部分,常用的有栅格系统、表单、表格、模态框、按钮等,这些组件对前端编程有莫大的帮助,能够帮助开发人员快速建立一个美观的页面。
2.6 Python和爬虫
Python是一种面向对象的计算机编程语言,语法相对于其他计算机语言更加简练,再加上时下有大量的Python库可以使用,用以来写爬虫非常便利,本站就是使用Requests和BeautifulSoup,分别获取页面内容和解析页面内容,然后保存到数据库中作为网站的原始数据,并且这样一套流程,能用很短的代码就可以实现,可谓是非常好用。
2.7 PHP和Laravel
PHP是一种开源的脚本语言,也是时下最流行的Web后端编程语言。PHP的代码常嵌入到HTML内运行,使用起来相对简单方便,而且最新版的PHP7执行速度相较于上一代提升了一倍有余,再加上与MySQL的合理搭配,本文转载自http://www.biyezuopin.vip/onews.asp?id=14787开发网站非常合适。
Laravel是一个PHP框架,它的理念是简洁、优雅,代码可读性高,开发速度快,而且目前Laravel作为国外最流行的PHP框架,社区活跃,文档丰富。其提供了许多好用的功能,比如中间件、Artisan命令行、安全认证、事件系统、Eloquent ORM等,这是一个非常强大的PHP Web框架。

<?php
namespace App\Http\Controllers;use Illuminate\Http\Request;
use App\Http\Requests;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Input;
use DB;class ToolController extends Controller {function __construct(){}//获取网站配置文件function getConfig(){$config=DB::select('select * from tool_config');$configArray=array();foreach($config as $rec){$configArray[$rec->k]=$rec->value;}return $configArray;}/** 路由过来的/discuss* 返回:讨论交流视图*/function discuss(){$sharePaginate=$this->getSharePaginate();return view('Tool/discuss',['config'=>$this->getConfig(),'sharePaginate'=>$sharePaginate]);}//获取分页function getSharePaginate(){$config=$this->getConfig();$paginateCount=$config['paginateCount'];$shareList= DB::table('tool_share')->paginate($paginateCount);return $shareList;}/** 路由过来的/login* 返回:管理员登录页面*/function login(){$sharePaginate=$this->getSharePaginate();return view('Tool/login',['config'=>$this->getConfig(),'sharePaginate'=>$sharePaginate]);}/** 路由过来的/admin* 返回:管理页面*/function admin(){$sharePaginate=$this->getSharePaginate();return view('Tool/admin',['config'=>$this->getConfig(),'sharePaginate'=>$sharePaginate]);}/** 路由post过来的/admin/{func}* 返回:ajax网站配置数据是否修改成功*/function adminFunction($func){$data=Input::all();if($func=='global'){$title=htmlentities($data['title']);$key=htmlentities($data['key']);$des=htmlentities($data['des']);$icon=htmlentities($data['icon']);$version=htmlentities($data['version']);$cnzz=htmlentities($data['cnzz']);$headAddCode=htmlentities($data['headAddCode']);$res=$this->setConfigGlobal($title,$key,$des,$icon,$version,$cnzz,$headAddCode);echo $res?'1':'0';}else if($func=='index'){$indexMessage=htmlentities($data['indexMessage']);$indexBarragerImg=htmlentities($data['indexBarragerImg']);$indexBarragerInfo=htmlentities($data['indexBarragerInfo']);$indexBarragerLink=htmlentities($data['indexBarragerLink']);$res=$this->setConfigIndex($indexMessage,$indexBarragerImg,$indexBarragerInfo,$indexBarragerLink);echo $res?'1':'0';}else if($func=='foot'){$footDes=htmlentities($data['footDes']);$footRecord=htmlentities($data['footRecord']);$footEmail=htmlentities($data['footEmail']);$footCopy=htmlentities($data['footCopy']);$res=$this->setConfigFoot($footDes,$footRecord,$footEmail,$footCopy);echo $res?'1':'0';}else if($func=='editor'){$editorTitle=htmlentities($data['editorTitle']);$editorTheme=htmlentities($data['editorTheme']);$editorHeight=htmlentities($data['editorHeight']);$res=$this->setConfigEditor($editorTitle,$editorTheme,$editorHeight);echo $res?'1':'0';}else if($func=='list'){$defaultTitle=htmlentities($data['defaultTitle']);$paginateCount=htmlentities($data['paginateCount']);$listCodeLength=htmlentities($data['listCodeLength']);$res=$this->setConfigList($defaultTitle,$paginateCount,$listCodeLength);echo $res?'1':'0';}}function setConfigGlobal($title,$key,$des,$icon,$version,$cnzz,$headAddCode){$res1=DB::table('tool_config')->where('k', 'title')->update(['value' => $title]);$res2=DB::table('tool_config')->where('k', 'keyword')->update(['value' => $key]);$res3=DB::table('tool_config')->where('k', 'des')->update(['value' => $des]);$res4=DB::table('tool_config')->where('k', 'icon')->update(['value' => $icon]);$res5=DB::table('tool_config')->where('k', 'version')->update(['value' => $version]);$res6=DB::table('tool_config')->where('k', 'cnzz')->update(['value' => $cnzz]);$res7=DB::table('tool_config')->where('k', 'headAddCode')->update(['value' => $headAddCode]);return $res1||$res2||$res3||$res4||$res5||$res6||$res7;}function setConfigIndex($indexMessage,$indexBarragerImg,$indexBarragerInfo,$indexBarragerLink){$res1=DB::table('tool_config')->where('k', 'indexMessage')->update(['value' => $indexMessage]);$res2=DB::table('tool_config')->where('k', 'indexBarragerImg')->update(['value' => $indexBarragerImg]);$res3=DB::table('tool_config')->where('k', 'indexBarragerInfo')->update(['value' => $indexBarragerInfo]);$res4=DB::table('tool_config')->where('k', 'indexBarragerLink')->update(['value' => $indexBarragerLink]);return $res1||$res2||$res3||$res4;}function setConfigFoot($footDes,$footRecord,$footEmail,$footCopy){$res1=DB::table('tool_config')->where('k', 'footDes')->update(['value' => $footDes]);$res2=DB::table('tool_config')->where('k', 'footRecord')->update(['value' => $footRecord]);$res3=DB::table('tool_config')->where('k', 'footEmail')->update(['value' => $footEmail]);$res4=DB::table('tool_config')->where('k', 'footCopy')->update(['value' => $footCopy]);return $res1||$res2||$res3||$res4;}function setConfigEditor($editorTitle,$editorTheme,$editorHeight){$res1=DB::table('tool_config')->where('k', 'editorTitle')->update(['value' => $editorTitle]);$res2=DB::table('tool_config')->where('k', 'editorTheme')->update(['value' => $editorTheme]);$res3=DB::table('tool_config')->where('k', 'editorHeight')->update(['value' => $editorHeight]);return $res1||$res2||$res3;}function setConfigList($defaultTitle,$paginateCount,$listCodeLength){$res1=DB::table('tool_config')->where('k', 'defaultTitle')->update(['value' => $defaultTitle]);$res2=DB::table('tool_config')->where('k', 'paginateCount')->update(['value' => $paginateCount]);$res3=DB::table('tool_config')->where('k', 'listCodeLength')->update(['value' => $listCodeLength]);return $res1||$res2||$res3;}
}




















基于PHP的编程类学习网站设计与实现相关推荐

  1. 基于Java学生课外知识学习网站设计实现(源码+lw+部署文档+讲解等)

    博主介绍: ✌全网粉丝30W+,csdn特邀作者.博客专家.CSDN新星计划导师.java领域优质创作者,博客之星.掘金/华为云/阿里云/InfoQ等平台优质作者.专注于Java技术领域和毕业项目实战 ...

  2. 基于JAVA英语学习网站设计与实现计算机毕业设计源码+数据库+lw文档+系统+部署

    基于JAVA英语学习网站设计与实现计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA英语学习网站设计与实现计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S ...

  3. 基于java+SpringBoot+HTML+Mysql旅游网站设计与实现

    详细功能设计:请点击下面链接查看基于java+SpringBoot+HTML+Mysql旅游网站设计与实现_哔哩哔哩_bilibili 源码+论文获取: 源码+论文获取请私信获取 目录 Abstrac ...

  4. 【java毕业设计】基于java+tomcat+jsp的威客网站设计与实现(毕业论文+程序源码)——威客网站

    基于java+tomcat+jsp的威客网站设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+tomcat+jsp的威客网站设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦 ...

  5. asp毕业设计—— 基于asp+access的课程教学网站设计与实现(毕业论文+程序源码)——教学网站

    基于asp+access的课程教学网站设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的课程教学网站设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦.需要下载开 ...

  6. java毕业设计——基于java+Spring+JSP的宠物网站设计与实现(毕业论文+程序源码)——宠物网站

    基于java+Spring+JSP的宠物网站设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+Spring+JSP的宠物网站设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦 ...

  7. JAVA毕业设计英语学习网站设计与实现计算机源码+lw文档+系统+调试部署+数据库

    JAVA毕业设计英语学习网站设计与实现计算机源码+lw文档+系统+调试部署+数据库 JAVA毕业设计英语学习网站设计与实现计算机源码+lw文档+系统+调试部署+数据库 本源码技术栈: 项目架构:B/S ...

  8. html5设计博客论文,基于HTML5的综合类博客设计与实现-计算机本科毕业论文

    基于HTML5的综合类博客设计与实现-计算机本科毕业论文 (35页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.9 积分 HUNAN JtfSlVE ...

  9. php开发小型商务网站,基于PHP的校园小型商务网站设计──校园服务平台-论文...

    基于PHP的校园小型商务网站设计──校园服务平台-论文 基于PHP的校园小型商务网站设计校园服务平台摘 要校园服务平台是基于PHP建立的校园小型商务网站.前台主要运用了html.css.Javascr ...

  10. 基于Spring Boot的二手车交易网站设计与实现

    ** 基于Spring Boot的二手车交易网站设计与实现 ** 摘要 二手车交易网站以Eclipse 作为本课题开发环境,采用Java语言.Spring Boot框架和Mysql数据库搭建而成的项目 ...

最新文章

  1. 差异基因分析:fold change(差异倍数), P-value(差异的显著性)
  2. 小程序webview跳转页面后没有返回按钮完美解决方案
  3. explode 无分隔符_使用PHP explode()函数时出现“空分隔符”警告
  4. 闪灯什么意思_开车碰见别人闪灯知道是什么意思吗?看不懂不要说自己会开车哦...
  5. php使用swoole的应用场景
  6. Android在第三方应用程序系统应用尽早开始,杀死自己主动的第三方应用程序,以重新启动...
  7. 【Visual C++】游戏开发笔记十九 DirectX与OpenGL的博弈
  8. 洛谷 P1508 Likecloud-吃、吃、吃
  9. xhtml css 漏 整理
  10. 翻译: 全球导航卫星系统 (GNSS) 的演进
  11. 许丹萍 计算机系,【晋江市“十佳少先队辅导员”】第二实验小学老师许丹萍: 关注每一个队员的成长...
  12. 创宇蜜罐入驻华为严选商城,与华为云共同构建积极纵深防御体系
  13. 如果不知道这4种缓存模式,敢说懂缓存吗?
  14. 朴素贝叶斯(西瓜数据集分类,社区恶意留言分类,垃圾邮件分类,新浪新闻分类),AODE分类器 代码实现
  15. 使用 Chrome DevTools 模拟缓慢的 3G 网络速度
  16. 汽车诊断仪常用特殊功能-ABS排气
  17. 一文搞懂│XSS攻击、SQL注入、CSRF攻击、DDOS攻击、DNS劫持
  18. 中国LINUX公社(论坛)
  19. 媛明源科普基金倡议发起婴儿日
  20. linux下grep同时匹配多个单词,Linux下使用grep命令搜索多个单词的方法

热门文章

  1. c语言反步法编程,CCM模式下Boost电路的反步法非线性控制与仿真.pdf
  2. upload上传, 取各类文件的名字
  3. python k线斜率计算公式_均线角度公式,通达信均线斜率公式
  4. 庄辰超的势能,梁建章的心力
  5. 量子计算与通讯的基本原理(量子纠缠)
  6. java定义一个接口shape_定义一个借口shape
  7. 解决Untracked Files Prevent Checkout问题
  8. SageMath矩阵操作及解线性方程组
  9. cad文字递增快捷键_cad文字修改快捷键是什么,Auto CAD文字修改快捷键是什么?
  10. 功能最强大的编辑器——vi