php抓取网页标签(php大型网站的优化技术:html()(图))
优采云 发布时间: 2022-04-16 12:14php抓取网页标签(php大型网站的优化技术:html()(图))
先贴地址:php
大型网站的优化技术:html
一、SEO、优化一、mysql
2、页面静态jquery
3、memcache(内存缓存)面试
4、服务器集群技术ajax
总体目标:提高网站的访问速度,SEO目的:提高网站的排名,(解决方法是速度)sql
SEO:google优化,百度优化:数据库
今天先从页面静态开始:apache
先说几个概念:浏览器
1.静态网址
纯html文档
但是不要以为后缀是html就是静态网站,
2.动态网址(网站)
localhost/dir&file/var.PHP?name=admin&id=2
根据用户在地址栏中传递不同的参数,显示不同的结果
3.伪静态网址
伪静态:
使用TP框架时,url有几种模式:
1、/路径信息
2.MVC ?m=&a=
3、重写模式:(不同于pathinfo模式:重写少入口文件)
修改apache的配置
增加 htacess 文件
tp框架中的重写模式,伪静态:
localhost/dir&file/news-id/2/name/admin.html
为什么要把动态的网站改成静态的形式:
1、/*1=1*/防止sql注入
2.动态网站对SEO不好,因为?以下参数将动态变化。搜索引擎爬的时候不知道怎么保存,/index.htmlindex.php?act=index
原则:尽量不要在没有从数据库中获取数据的情况下操作数据库
如何使页面静态:
页面静态分类:
1、按形式:
1、真静态
2. 伪静态
2、按范围:
1.本地静态词(jQuery、ajax)
2.全静态
搜索引擎:
1.抓取你的网站的内容,不是一口气把所有的内容都抓起来,放在一起
2、但是根据你的关键词对你的内容和排名进行分类
如何对 SEO 友好?
1、百度建议:
url长度:不超过255字节
当搜索引擎抓取时:
从首页触发:遇到页面时,抓取其内容并保存。
因为越短越早爬越频繁,更新越快,觉得你没问题
并且每个页面的爬取时间是有限的,每个页面最多在5秒内分配
当然网站越好,排名越高,分配的时间越长
2.meta标签的keywordsdeciption标签也是针对搜索引擎的
然后SE会根据你的关键词和描述做一个粗略的分类
可以防止搜索引擎抓取我们的网站内容:
页面代码之间,添加nofollow属性!!如果是超链接,只需在标签中添加 rel="nofollow" 即可!
(2)robots.txt
关键词
描述
(3)前台尽量不要使用frameframeset,后台可以使用,frame*(为了避免搜索引擎在后台爬取)
(4)flash,用图片代替,jquery做一些特效
(5)图片,尽量给每张图片加上alt属性。图片还没显示的时候,先显示alt提示文字
SEO优化----
如何使页面静态:
通过php的ob缓存实现
提升你的排名
提高速度
随着360综合搜索的出现,百度广告非常谨慎
1.通过php的ob缓存实现
工具可以测试后,网站的访问速度
Apache 附带了一个名为 ab.exe 的工具
能够检测您的 网站 的访问速度
在 php5.2 中,默认状态是关闭 ob 缓存。php5.3之后,默认开启ob缓存。
在 php.ini 输出缓冲
面试:使用开发环境:apache2.2.6
MySQL 版本:5.3
使用php的ob缓存实现页面静态
1.缓存:smarty缓存、ThinkPHP框架缓存、PHP ob缓存
(1)ob---缓存,先将输出数据缓存到一个空间
然后在显示的时候显示这个空间的缓存数据
由于默认有一些header信息,后面遇到echo时,会向浏览器发送数据
由于默认标头已通过 echo 发送到浏览器
ob缓存入门
没有错误信息了?
引出ob缓存的原理:
php缓存:
(1)ob 缓存
首先判断是否开启ob缓存。如果启用它,首先将输出数据放入ob缓存中。如果不启用ob缓存,则将其放入程序缓存中。
(2)程序缓存
即如果没有开启ob缓存,先缓存程序中的数据,等待echo完成,然后统一输出。
浏览器也有缓存:
浏览器先保存数据,当达到一定数量(即超过500MB)时才输出。
如何获取缓存的数据
1. ob_start() 先将输出数据放入ob缓存中
2、ob_clean()清除缓存,但不关闭
3、ob_end_clean() 清除缓存的同时也关闭缓存
4. ob_flush() 将ob缓存的数据输出到程序缓存中
5. ob_end_flush() 将ob缓存的数据输出到程序缓存,关闭ob缓存
ob_flush();//只是将ob缓存的数据输出到程序缓存中
ob_end_flush(); //输出后关闭ob缓存
flush() 会将程序缓存的数据输出到浏览器缓存中
浏览器缓存:类似于php的程序缓存,先将每个输出输出到程序缓存中,输出完成后再显示给浏览器
PHP的缓存机制:
1、ob缓存,如果开启ob缓存,数据会先放到ob缓存中。
2、程序缓存,如果没有启用ob缓存,则将数据缓存到程序缓存中
页面静态案例:
新闻管理系统:
output_buffering = Off 关闭缓冲
补课说:
mysql数据类型:
varchar(32): 显示多少位数
varchar(255) :
一个字母,数字,多少字节:utf-8 2 汉字:3
gbk 为 1 个字节
1 varchar 表示 0-65535 之间的长度范围 varchar(255)
char 定长字符串:char(255) 编码位数,255表示显示/保存多少位数
char() 定长,不管你存储多少,指定字节数
int:最长为 429.。. 100 亿意味着 4 个字节
tinyint:1 字节 0-255 无符号
myisam:和innodb:区别
1、myisam不支持事务,innodb支持事务
2.myisam查询速度比innodb快,
3、myisam不支持外键,innodb支持外键(新版mysql已经支持外键)
外键,维护数据完整性,
事务:一组逻辑操作,组成这组操作的单元,要么全部成功,要么全部失败
三大特点:
原子
一致性
完整的项目不统一,不全是myisam也不全是innodb,要根据具体业务
问题:每次访问都需要查询数据库,数据库操作频繁,服务器组建,数据库压力增大,用户可能10分钟内更新不了新闻内容,所以我们这样做:
在我第一次访问后,生成了一个静态页面,
二、当我再次访问这个页面时,3、4,直接显示静态页面
这时候有一个问题:
如果不幸更新了新闻怎么办?
1.判断
最终,当你想添加新闻,或者修改新闻时,你应该生成静态页面
添加新闻时生成静态页面:
提交后,显示库,然后生成静态页面
涉及模板替换内容
创建一个模板文件。当样式基本固定,但内容不确定时,先用占位符替换数据部分
然后,得到数据后,替换它
rfopen()
w
fgets() 函数,读取一行(只是)
fopen() 打开文档 rw
fwrite() 将内容写入这个打开的文档
feof() 测试当前文档是否读到最后
fclose() 一定要记得在打开文档后关闭它
file_put_contents() 将内容写入文件
file_get_contents() 读取文件的内容
1. 网站分类
2.网站优化百度对网站优化的建议:5分
3.如何检测网站性能(访问速度)
4、ob缓存的开头