还就没到这里来了,不知道大家对我还有印象没有?上次来记得是给一个眼角膜脱落的兄弟捐款,那时候我对php还一窍不通呢。经过一年多的刻苦学习,现在我又回来了这次不仅初步掌握了PHP语言,还带来了一篇刚刚发表在admin5的技术创新文章,请高手们多多指教。

 搜表情QQ表情搜索引擎由本站自行研发,采用了多项技术创新。如利用404错误系统实现程序自动生成静态文件、html自动定时更新、利用discuz论坛为后台的cms文章管理系统(dz cms)、多用户图片搜索引擎等。其中表情搜索引擎以discuz插件的形式实现,后台部分拥有万能图片采集器,方便不懂采集的录入员使用。下面就详细介绍一下本站的一些技术细节。
  一、开发了新的DISCUZ HOME 系统 DZ CMS。
  传统的DZ HOME页很常见,虽然外表像一个网站,但是只能作为一个论坛导航使用,点击内容后仍然是进入论坛页面。而且DZ作为一个互动论坛,没有真正的实现全站静态化。他的伪静态只能作为seo工具,而不能起到减少系统消耗的作用。(DZ提高负载采用的是缓存系统)。针对这些问题,本站开发者大胆创新,研发了一套解决方案,优化了DZ作为网站使用的性能和效果,实现了DZ后台化。具体实现了以下内容:
  1、拥有二级页面。并非论坛帖子列表,而是专门的二级页面
  2、并非所有论坛帖子都能上首页和栏目页,只有精华帖才可以上榜(也可改为固定主题上榜),起到了帖子审核作用。
  3、拥有专门的内容显示页面,而不是以论坛帖子的形式显示
  4、最终内容显示页全部重新构架,重写了内容读取,图片、flash显示ubb处理,以使其更加适合作为网站的需要
  5、本系统与dz结合的方式为模板中的栏目与论坛栏目id对应,而不需要对DZ源程序进行任何改动,完全继承了DZ的安全性,所有内容管理操作均在论坛前台完成。你只要设置好栏目权限就可以了。
  6、网站全部内容静态化,更加符合作为网站的需要。为了在不改动DZ源码实现静态生成,特别开发了404智能自动补缺和html自动更新系统,下面详细介绍。
  二、打破传统的静态生成方式
  在传统CMS中,如dede等,需要在发布文章后在后台进行生成静态或者更新静态文件。相当费事费时。而本系后台是Dz论坛,因为为了保持安全性,就要求不对DZ源代码做出任何改动,因此无法设置普通的静态更新系统,最后开发了全新的解决方案达到了要求。做到了自动生成、定时更新。使的网站管理非常方便,下面就说说实现的方法和使用到的技术。
  1、 利用404错误智能自动生成静态:
  传统CMS都有批量更新或者批量生成功能。本系统则完全无需非常耗费时间的批量生成。因为我们采用了智能404文件来生成不存在的静态页面。整个系统的运作方式如下:
  当我发表一篇文章,并设为精华,让其在网站的内容列表中显示。内容列表再更新后,收录这个文章,链接并非指向论坛帖子,而是根据栏目ID和帖子 ID,指向一个特定文件名的html静态文件。并且这个时候这个html并不存在。当这个链接被点击,由于文件不存在,因此系统将浏览器导向404错误页面,而本站的404错误页面是名为404.php的动态文件,截取系统发来的错误信息,并根据上不存在的文件名称和路径,使用正则进行分析,如果这是一个符合特定规则命名的文件,就连同分析结果一起导入到相应的静态生成程序,而生成程序按照404传递的参数在合适的地方生成一个按照规则命名的html文件,并跳转到这个文件。整个过程不足1秒,你不会察觉你正在看的网页在你点击的时候还不存在。
  本系统可以生成二级栏目和最终页面,以及他们的的后续分页,在本站实际应用中,DZ CMS文章系统和表情图片搜索引擎这个专门的系统共用一个智能404程序,实现两个系统的静态生成或者叫做静态补缺工作。
  如果本站需要全部重新生成文件,只需要把所有的静态文件删除,就可以了,整个系统会根据用户的点击把的文件慢慢恢复。
  2、html自动定时更新:
  这个功能是在php自动生成html功能上改进的。以前本功能是直接访问php文件,然后由php文件判断html文件是否存在或者更新时间,如果需要更新,就更新生成html文件并跳转到html文件。如果不需要更新,就直接跳转到html文件。以此实现html的定时更新。但是这个方法对 seo不利。因为首先访问的是php文件,再由php跳转到静态文件。因此,这种方法只能缓解流量压力,不适合seo。为此本站利用html调用js文件,来实现html的定时更新。现在是直接访问html静态文件,由js调用一个php动态文件。在这个php里对html的更新时间进行检查,如果需要更新,就调用相应php文件来更新访问的这个html。因为直接访问的就是静态文件,无需动态文件跳转,因此比原来的方法更加适合seo。另外通过js调用的这个php文件平时还负责统计并更新本页面的点击次数。这是一般静态网站做不到的。
  3、后台、前台完全分离
  因为本系统与DZ论坛仅仅是ID对应即可,前后台完全分离。模板系统使用DZ论坛,只要把前台的模板放入DZ论坛默认皮肤模板路径即可,方便开发者使用。目前评论系统正在开发,同分页原理一样,采用dz论坛的回帖功能,目前还有几个问题需要解决,敬请期待。
  4、 这样做的好处:
  a) 生成静态有利于seo,并且有利于环节服务器运算压力
  b) 自动生成静态,无需专门批量更新生成静态,节省时间和系统资源
  c) 自动更新静态,并统计页面点击数,做到传统cms无法做到的事情
  d) 智能404的利用,不仅可以报404错误、还能自动生成应有但不存在的页面,并且本站的常规错误报告也是使用这个系统来实现的。
  e) 对DZ原始程序不做任何改动,完全继承DZ的安全性
  这篇文章就到这里,下面文章我会详细介绍下本站得多用户表情搜索引擎的实现原理,希望同网络界同行多多交流,有不当的地方还请多多指正不吝赐教,以帮助本人成长。
  本系统还在不断开发完善中,欢迎您访问http://www.soubq.com 同时本站诚招QQ类 表情类网站高质量链接,对于在我们发展初期给与帮助的兄弟姐妹,我们会永远铭记并回报。

php技术创新:利用动态404页面实现全站自动静态化相关推荐

  1. 利用动态渲染页面对京东笔记本电脑信息爬取

    写在前面 之前写过一个爬取京东商品的Scrapy爬虫项目,但是里面价格及评论数是通过逆向工程法获得的,在不使用代理ip的情况下,在爬取一定数量的商品后会被持续要求输入验证码.所以这里写出利用动态页面渲 ...

  2. 关于大型网站技术演进的思考(十六)--网站静态化处理—前后端分离—下(8)

    出处:夏天的森林博客 我第一次听说nodejs技术大概是在2009年年末,不过我真正认真在网络上进一步了解nodejs还是在2010年年中,当时对nodejs的认识和我现在对nodejs的认识有着天壤 ...

  3. 关于大型网站技术演进的思考(十五)--网站静态化处理—前后端分离—中(7)

    出处:夏天的森林博客 上篇里我讲到了一种前后端分离方案,这套方案放到服务端开发人员面前比放在web前端开发人员面前或许得到的掌声会更多,我想很多资深前端工程师看到这样的技术方案可能会有种说不出来的矛盾 ...

  4. 关于大型网站技术演进的思考(十五)--网站静态化处理—前后端分离—中(7)...

    2019独角兽企业重金招聘Python工程师标准>>> 出处:夏天的森林博客 上篇里我讲到了一种前后端分离方案,这套方案放到服务端开发人员面前比放在web前端开发人员面前或许得到的掌 ...

  5. 关于大型网站技术演进的思考(二十)--网站静态化处理—web前端优化—中(12)...

    Web前端很多优化原则都是从如何提升网络通讯效率的角度提出的,但是这些原则使用的时候还是有很多陷阱在里面,如果我们不能深入理解这些优化原则背后所隐藏的技术原理,很有可能掉进这些陷阱里,最终没有达到最佳 ...

  6. 收集的几个自定义的404页面的模板

    文章目录 404pages : HTTP Status 404 – Not Found 介绍: 404页面分类: 补充内容: 致谢: 声明 404pages : HTTP Status 404 – N ...

  7. 分享五个404页面模板 超好看的404页面你的网站离不了 seo优化404

    一个完整的网站离不开一个好的404页面,404页面不光是让你的网站美观,它对SEO的作用也很大,你想一下如果用户打开你的网站,输入一个不存在的风址,如果没有404直接就报错了,有了404就能打开一个美 ...

  8. freemarker 页面静态化技术

    文章目录 一.背景 二.页面静态化技术freemarker 三.Freemarker基本操作 1.引入依赖: 2.创建模板文件: 3.FTL指令: 四.freemarker整合spring 五.总结: ...

  9. app 404 html,现代404页面设计趋势分析与案例

    每个网站都是由不同功能不同类型的页面构成的,当用户打开错误链接的时候,网站的404页面就派上用场了.一个可靠的404页面在告知用户他们走错地方的同时,还应当引导用户继续浏览,安抚情绪,找到他们真正想要 ...

最新文章

  1. 连接不上ftp解决方案
  2. 从源码来理解slf4j的绑定,以及logback对配置文件的加载
  3. ReactNative之从HelloWorld中看环境搭建、组件封装、Props及State
  4. python原理及代码_原理+代码|详解层次聚类及Python实现
  5. Reading and Writing to Binary Files
  6. 三星Note10 Pro电池曝光:容量高达4500mAh
  7. Java设计模式学习总结(15)——行为型模式之责任链模式
  8. JavaScript学习(九十二)—关联数组的基本操作
  9. L3-022 地铁一日游 (30 分)-PAT 团体程序设计天梯赛 GPLT
  10. 开源工具软件XMusicDownloader——音乐下载神器
  11. 汤姆·克鲁斯 - 电影全集
  12. 计算机毕业设计Java大学生第二课堂(源码+系统+mysql数据库+lw文档)
  13. 2021Bootstrap框架入门(最新)
  14. oracle全角改半角,Oracle全角数字转换半角数字
  15. formality的一点经验总结
  16. 质量管理-----解决问题A3报告写法
  17. Win10 SQL Server 2012 企业版 安装教程
  18. Notepad操作指南
  19. ModuleNotFoundError: No module named
  20. android第三天--AbsoluteLayout绝对布局

热门文章

  1. 产品开发中项目与项目管理
  2. Debian系下载deb安装包及依赖包
  3. 如何优雅的阅读论文——福昕阅读器
  4. 如何理解CRM软件里的销售机会与线索
  5. infiniband rmmod: ERROR: Module xxxx is in use by:yyyyy
  6. Android警告信息:Use Autofill
  7. python中GIL和线程与进程
  8. Word格式处理控件Aspose.Words for .NET水印处理教程——如何添加和删除水印
  9. 运行python程序总是报警告“libpng warning: iCCP: known incorrect sRGB profile”,解决方案:将Anaconda中的libpng版本替换即可
  10. Android一键锁屏,去除锁屏密码