当前位置: 首页 > 图文教程 > 网络编程 > PHP > php 向访客和爬虫显示不同的内容

PHP
PHP 5.0对象模型深度探索之访问方式
解决phpMyAdmin2.6以上版本数据乱码问题
PHP开发中session应用详解
Lore Article.PHP SQL注入漏洞
Mysql存取session实例
php调用mysql存储过程和函数的方法
用PHP5进行三层开发
在PHP中进行GB2312与UTF-8的互换
php与XML、XSLT、Mysql的结合运用,代码篇
php与XML、XSLT、Mysql的结合运用,安装篇
用GD图库生成横竖柱状图折线图的类
一个全面获取图象信息的函数getImageInfo()
用PHP与XML联手进行网站编程
PHPMailer:Featured email transfer class for PHP
php用流方式制作缩略图
php+odbc+access数据库操作函数,在windows下测试通过
PHP IPwhois类
用PHP读写NTFS文件系统下的文件摘要信息
一个简单上传文件出错的解决
PHP实现自动刷数和“灌水”机

PHP 中的 php 向访客和爬虫显示不同的内容


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 99 ::
收藏到网摘: n/a

为了提高网页的用户体验, 我们经常会做一些对搜索引擎不太友好的事情, 但某些情况下这并不是无法挽回的, 可以通过向自然人和搜索引擎机器人显示不同的内容来提供好的用户体验和 SEO. 听说本方法会触犯搜索引擎的一些操作原则, 有可能被被各搜索引擎处罚, 甚至删除网站. 所以我刚刚已经撤下这样的处理, 直到确定其不属于作弊. 有魄力的朋友可以继续使用, 但后果自负.
本博客的首页和存档页面以列表的形式显示文章, 在访客点击展开文章时才加载文章的内容. 因为文章的内容部分包含了大量的文字和图片, 需要大量的加载时间和流量. 尽快地向访客展示网页可以挽留大量的来访者. 而对于手机用户来说, 加载时间和流量则更为重要.
一般来说, 网站的首页是搜索引擎访问最多的页面, 应该尽可能的向它们展示有意义的内容, 但是要以列表的形式显示文章的话, 访客和搜索引擎只能获取到文章标题信息. 文章内容或者摘要 (尤其是文章的第一句) 对于 SEO 来说是极其重要的, 所以我们要设法向爬虫发送这些内容.
好, 我们可以通过 User Agent 来判断访问者是否为爬虫, 如果是, 则以一般形式显示文章, 否则以列表形式显示文章列表. 可以用以下的 PHP 方法判断是否为爬虫:
复制代码 代码如下:

function is_crawler() {
$userAgent = strtolower($_SERVER['HTTP_USER_AGENT']);
$spiders = array(
‘Googlebot', // Google 爬虫
‘Baiduspider', // 百度爬虫
‘Yahoo! Slurp', // 雅虎爬虫
‘YodaoBot', // 有道爬虫
‘msnbot' // Bing爬虫
// 更多爬虫关键字
);
foreach ($spiders as $spider) {
$spider = strtolower($spider);
if (strpos($userAgent, $spider) !== false) {
return true;
}
}
return false;
}

这是我使用的方法, 各爬虫以访问评论由高到低进行排序. 然后通过下面的的方法向爬虫和自然人显示不同的内容