php 抓取网页(纯静态网站在网站中是和服务器怎么实现的??)
优采云 发布时间: 2022-01-02 22:10php 抓取网页(纯静态网站在网站中是和服务器怎么实现的??)
随着网站内容的增加和用户访问量的增加,不可避免的网站会加载越来越慢,受限于带宽和服务器在同时限制,这个时候我们经常需要优化我们的网站代码和服务器配置。
一般情况下,会从以下几个方面进行优化
1、静态动态页面
2、优化数据库
3、使用负载均衡
4、使用缓存
5、使用CDN加速
如今,许多 网站 必须在构建过程中进行静态处理。为什么要对 网站 进行静态处理?我们都知道纯静态网站就是所有的网页都是独立的html页面。我们访问的时候,可以直接读取文件,无需数据处理。访问速度可想而知。而且对于搜索引擎来说也是一种非常友好的方式。
网站中如何实现纯静态网站?
纯静态制作技术是先将网站的页面进行汇总,分成几种样式,然后将这些页面制作成模板。生成的时候,必须先读取源文件,然后生成.html结尾的独立Page文件,所以纯静态网站需要更多的空间,但其实需要的空间并不多,尤其是小中型企业网站,从技术上来说,大型网站更难实现全站纯静态化,生成时间过长。不过中小网站还是纯静态对比,优点很多。
动态网站是如何静态处理的?
页面静态化是指将动态页面转成html/htm静态页面。动态页面一般采用asp、php、jsp、.net等编程语言编写,非常易于管理。但是,在访问网页时,程序需要先对其进行处理,因此访问速度相对较慢。静态页面访问速度快,但不易管理。那么静态动态页面就可以将两种页面的优点结合起来。
静态处理给网站带来什么好处?
1、静态页面比动态页面更容易被搜索引擎搜索到收录。
2、访问静态页面不需要程序处理,可以提高运行速度。
3、减轻服务器负担。
4、HTML 页面不会受到 Asp 相关漏洞的影响。
静态处理网站比静态处理网站相对安全,因为静态网站不会成为黑客的首选,因为黑客在不了解你的后端系统的情况下,黑客很难从前端的静态页面进行攻击。同时,它还具有一定的稳定性。比如网站的数据库或程序有问题,不会干扰静态处理的页面,也不会因为程序或数据的影响而无法打开页面.
搜索引擎蜘蛛程序更喜欢这样的网址,这样也可以减少蜘蛛程序的工作量。虽然有些人认为搜索引擎现在完全有能力抓取和识别动态 URL,但我建议你在这里做。尽量使用静态网址。
接下来主要讲一下静态页面的概念,希望对大家有帮助!
什么是 HTML 静态:
常说的页面静态有两种,一种是伪静态,即url重写,一种是真静态。
在PHP网站的开发中,为了网站推广和SEO的需要,需要对网站进行全站或局部静态处理。有很多方法可以在 PHP 中生成静态 HTML 页面。比如利用PHP模板、缓存等实现页面静态。
PHP静态的简单理解就是将网站生成的页面以静态HTML的形式展现在访问者面前。 PHP静态分为纯静态和伪静态。两者的区别在于PHP生成静态页面。处理机制不同。
PHP 伪静态:一种使用 Apache mod_rewrite 实现 URL 重写的方法。
静态 HTML 的好处:
一、减轻服务器负担,浏览网页无需调用系统数据库。
二、有利于搜索引擎优化SEO,百度、Google会优先处理收录静态页面,不仅收录的快,还有收录@的饱满>;
三、加快页面打开速度,静态页面不需要连接数据库,打开速度比动态页面快;
四、网站更安全,HTML页面不会受到php程序相关漏洞的影响;注意较大的网站基本上都是静态页面,可以减少攻击,防止sql注入。发生数据库错误时,不会影响网站的正常访问。
五、发生数据库错误时,不会影响网站的正常访问。
最重要的是提高访问速度,减轻服务器的负担。当数据量几万、几十万甚至更多的时候,你就会知道哪个更快。而且很容易被搜索引擎找到。虽然生成html文章操作起来比较麻烦,程序上也比较复杂,但是为了让搜索更方便、更快捷、更安全,牺牲也是值得的。
实现HTML静态化的策略和示例说明:
基本方式
file_put_contents() 函数
利用php内置的缓存机制实现页面静态——output-bufferring。
方法一:使用PHP模板生成静态页面
PHP模板实现静态化非常方便,比如安装使用PHP Smarty实现网站静态化。
在使用Smarty的情况下,也可以实现静态页面。简单说一下使用Smarty时常用的动态阅读方式。
一般分为这几个步骤:
1、通过 URL 传递参数(ID);
2、然后根据这个ID查询数据库;
3、获取数据后,根据需要修改显示内容;
4、指定要显示的数据;
5、显示模板文件。
Smarty 静态流程只需要在上述流程中增加两步即可。
首先:使用ob_start()在1之前打开缓冲区。
第二:5之后,使用ob_get_contents()获取内存未输出的内容,然后使用fwrite()将内容写入目标html文件。
根据上面的描述,这个过程在前台执行网站,而内容管理(添加、修改、删除)通常在后台进行。为了有效的利用上面的过程,可以用一点手段,那就是Header()。具体过程如下:添加修改程序后,使用Header()跳转到前台读取,使页面可以HTML化,生成html后再跳回后台管理端,这两个跳转进程是不可见的。
方法二:使用PHP文件读写功能生成静态页面
方法三:使用PHP输出控制/ob缓存机制生成静态页面
输出控制功能(Output Control)就是利用和控制缓存来生成静态HTML页面。它还使用了PHP文件读写功能。
例如某产品的动态详情页地址为:
那么这里我们根据这个地址读取一次这个详情页的内容,然后保存为静态页面。下次有人访问这个商品详情页的动态地址时,我们可以直接输出生成的对应静态内容文件。
PHP生成静态页面示例代码1
PHP生成静态页面示例代码2
我们知道使用PHP进行网站开发,一般的执行结果都是直接输出到浏览器的。为了使用PHP生成静态页面,需要使用输出控制功能来控制缓存区,从而获取缓存区的内容,然后输出到静态HTML页面文件,实现网站静态。
PHP生成静态页面的思路是:先开启缓存,然后输出HTML内容(也可以通过include以文件的形式收录HTML内容),然后在cache,清除缓存,通过PHP文件读取write函数将缓存内容写入静态HTML页面文件。
获取输出缓存内容生成静态HTML页面的过程需要三个函数:ob_start()、ob_get_contents()、ob_end_clean()。
知识点:
1、ob_start函数一般用于打开缓存。注意在使用ob_start之前不能有空格、字符等输出。
2、ob_get_contents 函数主要用于获取缓存中的内容,并以字符串形式返回。注意这个函数必须在ob_end_clean函数之前调用,否则获取不到缓存内容。
3、ob_end_clean 函数主要是清除缓存中的内容,关闭缓存。成功返回True,失败返回False
方法四:使用nosql从内存中读取内容(其实这不是静态的而是缓存的);
以memcache为例:
memcached 是 key 和 value 一一对应的。 key默认最大大小不能超过128字节,value默认大小为1M,所以1M大小可以满足大部分网页大小的存储。
举两个例子,如何写出好的代码
最经典的算法,献给面试路上的你
如果你目前正在面试 PHP 的路上,看看基础面试题