搜索机器人的PHP代码
/**
* 判断是否为搜索引擎蜘蛛
*
* @access public
* @return string
*/
function is_spider($record = true)
{
static $spider = NULL;
if ($spider !== NULL)
{
return $spider;
}
if (empty($_SERVER['HTTP_USER_AGENT']))
{
$spider = '';
return '';
}
$searchengine_bot = array(
'googlebot',
'mediapartners-google',
'baiduspider+',
'msnbot',
'yodaobot',
'yahoo! slurp;',
'yahoo! slurp china;',
'iaskspider',
'sogou web spider',
'sogou push spider',
'feedfetcher-google',
'yahoofeedseeker'
);
$searchengine_name = array(
'GOOGLE',
'GOOGLE ADSENSE',
'BAIDU',
'MSN',
'YODAO',
'YAHOO',
'Yahoo China',
'IASK',
'SOGOU',
'SOGOU',
'Feedfetcher-Google',
'YahooFeedSeeker'
);
$spider = strtolower($_SERVER['HTTP_USER_AGENT']);
foreach ( $searchengine_bot AS $key => $value)
{
if (strpos($spider, $value) !== false)
{
$spider = $searchengine_name[$key];
if ($record === true)
{
// do something
}
return $spider;
}
}
$spider = '';
return '';
}
ffmpeg的安装及使用
ffmpeg是一个类似Imagemagick的工具,两者最大的区别在于:ImageMagick是转换图片,而ffmpeg主要提供视频的转换。同时两者也有一个非常相似的优点就是支持的格式很多,基本涵盖了所有流行的图片和视频格式。
不过ffmpeg有一个非常不方便之处,就是安装比较麻烦,在Linux系统中并非默认安装,特别是想在一些共享空间(Virtual Host)里使用可能非常的困难。
那 我们首先来讲如何在Windows系统里安装它,网上很多文章都洋洋洒洒写了很多,教你怎么编译这样ffmpeg。其实在Windows系统中进行 ffmpeg的编译是难得最高的,毕竟它是Linux的产物,在Windows下编译难度不言而喻。其实有很多替代方案可以使用,毕竟Internet是 个热心人的时间,通过Internet可以减少很多重复的工作。
- 你可以从http://sourceforge.net/project/showfiles.php?group_id=205275&package_id=248632下载已经编译好的版本。
- 你也可以安装ImageMagick,其中也包含了一个ffmpeg的binary执行文件。
如果想在Linux中编译,可以参考官方的说明。我们这里再介绍如何在虚拟空间(Virtual Host)中进行编译,其实编译的过程也非常的简单。可以参考DreamHost的Wiki中的一篇文章的介绍,http://wiki.dreamhost.com/index.php/FFmpeg ,按照步骤如果编译无错应该就没问题,不过国外的虚拟空间技术都比较成熟,不清楚国内的虚拟空间支持了如何。
最后讲2个ffmpeg的视频转换命令:
1.把视频转换成flv文件(这个用得最多,现在Flv基本上已经成了网络视频的标准了)
ffmpeg -i source -s 320×240 -b 700k -aspect 4:3 -y -f flv dest.flv 。
其中:
- source:是原始文件的名字,可以是mov,mpeg,avi,wmv各类格式,ffmpeg基本都支持。
- -s wxh: 指定视频的宽和高
- -b : 设定视频的比特率
- -aspect: 保持视频的比率。如4:3或者16:9
- -y : 如果目标文件存在时,直接覆盖原有的目标文件。
- -f : 指定转换的文件格式,这里是flv格式。(其实如果不指定文件格式,ffmpeg也会按文件的后缀名来进行转换)。
- dest: 转换的目标文件名字,并不一定需要是flv,可以是mov,mpeg以及其他的常用格式。
2. 截取视频的某一帧保存为图片。
ffmpeg -i source -ss 00:00:06 -t 00:00:01 -r 1 -s 320×240 -f image2 -y dst.jpg
网上也提到了很多保存视频,但很难找到如何从指定的位置开始保存,很多视频的第一帧都是黑屏,所以如不指定起始位置容易造成保存了一副黑的图片。
- -ss : 指定其实视频的时间: hh:mm:ss.xxx 其实还可以指定到毫秒级,不过看了下手册没找到怎么从指定的帧开始,不过这个可以通过换算实现。
- -t: 指定保持时间长度,因为是图片,所以固定设为00:00:01。如需保持为gif动画,可以设定为其他值,具体实现官方文档有说明。
- -r: 指定帧,这里指定为第一帧。
- -s: 图片的宽和高
- -f: 指定为图片格式
- dst: 图片的名字。
先分享到这里,如有问题大家可以一起讨论。