PHP删除web页面上的功能,PHP代码实现web页面静态化的功能

在公网上做网站,总是希望百度搜索引擎能够尽量多的收录自己网站的页面,众所周知,搜索引擎更加喜欢抓取静态的页面,将动态页面静态化,特别是批量的将动态页面转换为静态页面,这除了是一个使用的问题,更是一个程序设计上的问题。在以往开发的网站后台中,我特地避开了静态化的功能开发,而通过伪静态的方式在实现。近期在clone一个老项目的时候,决定在代码中实现这个真正静态化的功能。

这里说到真正的静态化,是将动态网页通过浏览器模拟访问的方式保存为html的静态网页文件存放在哎服务器的根目录,可以通过绝对url直接访问到html网页。

上面的截图包含了一个完整的静态化操作的响应过程。点击“静态化”按钮,会调用页面的js脚本,启动一个与后端交互的ajax连接,由服务器后端完成静态化的动作,并将静态化的结果返回给前端网页,前端js接收到后端返回的信息后,根据控制流程做出可视化响应,比如弹出一个提示框。

在前端网页中的js动作设计中,运用到了一个递归的方法,使用递归来循环与服务器的请求,当然,每次请求传递的参数是不同的,目的是将参数下的所有数据条目转换为静态的html页面。

371b559ee69352e77f91c52d2b4b5898.png

在点击“静态化”按钮时,触发的是a_static方法,在这个方法中,根据响应控制流程启动a_static_s过程,这是一个递归的方法,这样设计的出发点是将大量的数据分页请求,减小服务器内存、cpu以及磁盘I/O的占用,虽然服务器端配置比较低,通过合适的程序设计来保证程序的稳定性和健壮性。

后端运用到了php语言的ob缓存机制,通过缓存来获取网页的内容。另外有几个文件的操作函数。

判断静态文件是否已经存在,使用:

file_exists

获取到的网页缓存内容写入到磁盘文件,使用:

file_put_contents

file_put_contents可以新建文件,但不能创建目录,因此需要写创建目录的代码:

86745f331efc52b7a95f0cfa74ef94c5.png

那么完整的后端代码如下:

由于代码篇幅太大,截图也没有完整截下来,算是主要的实现代码吧。

在服务器的指定目录,可以看到生成的静态html文件。

从数据的角度来看,对于一些不变的数据,以文件的形式保存下来,在查看的时候更加直观,另一方面将这些冷数据从数据库里删除,使得数据库里保存的总是最新的一少部分数据,可以保证查询语句是有比较高的性能。

通过静态化生成的文件,将作为下一次倒排索引搜索引擎试验的文本数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值