php记录百度等搜索引擎蜘蛛的来访记录
<?php
function is_robot()
{
$useragent = strtolower($_SERVER['HTTP_USER_AGENT']);
if (strpos($useragent, 'googlebot') !== false) {
return 'Google';
}
if (strpos($useragent, 'baiduspider') !== false) {
return 'Baidu';
}
if (strpos($useragent, 'msnbot') !== false) {
return 'Bing';
}
if (strpos($useragent, 'slurp') !== false) {
return 'Yahoo';
}
if (strpos($useragent, 'sosospider') !== false) {
return 'Soso';
}
if (strpos($useragent, 'sogou spider') !== false) {
return 'Sogou';
}
if (strpos($useragent, 'yodaobot') !== false) {
return 'Yodao';
}
return false;
}
$searchbot = is_robot();
if ($searchbot) {
$url = "http://".$_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
$tlc_thispage = addslashes($_SERVER['HTTP_USER_AGENT']);
$file = "./robot-logs-".date('Y-m-d').".txt";
$time = date("Y-m-d G:i:s");
$robotlog = " Time: $time \n Robot: $searchbot \n Spider: $tlc_thispage \n CurrentUrl: $url \n-------------------------------------------------\n\n";
file_put_contents($file, $robotlog, FILE_APPEND);
}
?>
;
php记录百度等搜索引擎蜘蛛的来访记录的更多相关文章
- 利用referer属性,记录百度搜索跳转参数
从百度搜索结果跳转到指定链接前,百度会发送一些参数,可以利用referer属性,在本站访问时记录百度跳转来之前的一些参数. 利用百度跳转前参数,进行一些相关的seo优化. 目前所用到的一些参数说明如下 ...
- 使用ActionFilterAttribute 记录 WebApi Action 请求和返回结果记录
使用ActionFilterAttribute 记录 WebApi Action 请求和返回结果记录 C#进阶系列——WebApi 异常处理解决方案 [ASP.NET Web API教程]4.3 AS ...
- 初探oracle删除重复记录,只保留rowid最小的记录
如题,初探oracle删除重复记录,只保留rowid最小的记录(rowid可以反映数据插入到数据库中的顺序) 一.删除重复记录可以使用多种方法,如下只是介绍了两种方法(exist和in两种). 1.首 ...
- ON DUPLICATE KEY UPDATE 当记录不存在时插入,当记录存在时更新
MySQL 当记录不存在时插入,当记录存在时更新网上基本有三种解决方法.第一种:示例一:插入多条记录假设有一个主键为 client_id 的 clients 表,可以使用下面的语句:INSERTINT ...
- SQL 从100万条记录中的到 成绩最高的记录
从100万条记录中的到 成绩最高的记录 问题分析:要从一张表中找到成绩最高的记录并不难,有很多种办法,最简单的就是利用TOP 1 select top 1 * from student order b ...
- oracle删除重复记录,只保留rowid最小的记录
初探oracle删除重复记录,只保留rowid最小的记录 如题,初探oracle删除重复记录,只保留rowid最小的记录(rowid可以反映数据插入到数据库中的顺序) 一.删除重复记录可以使用多种 ...
- 【转】MySQL 当记录不存在时insert,当记录存在时update
MySQL当记录不存在时insert,当记录存在时更新:网上基本有三种解决方法 第一种: 示例一:insert多条记录 假设有一个主键为 client_id 的 clients 表,可以使用下面的语句 ...
- 一个表中的id有多个记录,把所有这个id的记录查出来,并显示共有多少条记录数
一个表中的id有多个记录,把所有这个id的记录查出来,并显示共有多少条记录数 select id ,Count(*) from table_name group by id having count( ...
- MySQL 当记录不存在时insert,当记录存在时update(ON DUPLICATE KEY UPDATE, REPLACE语句)
MySQL 当记录不存在时insert,当记录存在时更新 网上基本有三种解决方法. 第一种:示例一:insert多条记录 假设有一个主键为 client_id 的 clients 表,可以使用下面的语 ...
随机推荐
- Java 7 新功能: 省略finally, 保证资源正常关闭
class MyResource implements Closeable{ @Override public void close() throw IOException{ } } try( myR ...
- MVC流程图
MVC请求流程图 一 MVC流程图 二 流程步骤 客户端浏览器发送请求到MVC应用程序. Global.ascx接收这个请求,并且执行基于使用RouteTable,RouteData,UrlRouti ...
- [Angular] Debug Angular apps in production without revealing source maps
Source: https://blog.angularindepth.com/debug-angular-apps-in-production-without-revealing-source-ma ...
- Android Activity之间经典切换动画
package com.iteye.androidtoast; import java.util.ArrayList; import java.util.List; import android.ap ...
- Linux(Centos)——下升级python3.3
CentOS下的Python版本一般都比较低,很多应用都需要升级python来完成.我装的centOS的默认的python版本是V2.4.3,但运行node.js需要的版本是2.5以上. 1.下载py ...
- 关于 Nginx 并发连接数
关于 Nginx 并发连接数 最近在学习使用 nginx , 做一些简单的压力测试时,发现并发连接数最大只能上到 100 多 测试刚开始时的状态 , netstat -n | awk '/^tcp/ ...
- 打造Android万能上拉下拉刷新框架--XRefreshView(三)
转载请注明出处:http://blog.csdn.net/footballclub/ 打造Android万能上拉下拉刷新框架–XRefreshView(一) 打造Android万能上拉下拉刷新框架–X ...
- mongoDB DOS窗口显示中文
http://zhidao.baidu.com/question/157276582 由于mongodb后台的字符编码都是utf-8的,而中文windows cmd窗口使用的字符编码是GBK(属性-& ...
- springboot整合docker部署(两种构建Docker镜像方式)
项目结构 package hello; import org.springframework.boot.SpringApplication; import org.springframework.bo ...
- hibernate实现多变联合查询
Hibernate主要支持两种查询方式:HQL查询和Criteria查询.前者应用较为广发,后者也只是调用封装好的接口. 现在有一个问题,就是实现多表连接查询,且查询结果集不与任何一个实体类对应,怎么 ...