采集时常常要对网站内容进行重复判断,php判断正文内容比较困难,对于标题的判断还是比较简单,只要过滤标题中的版权,再用similar_text计算
<?php
/*
* php计算title标题相似比 by enenba.com
*
* @param string $title_1 题目1
* @param string $title_2 题目2
* @return float $percent 相似百分比
*/
function title_similar($title_1,$title_2) {
$title_1 = get_real_title($title_1);
$title_2 = get_real_title($title_2);
similar_text($title_1, $title_2, $percent);
return $percent;
}
/**
* php采集文章题目并去版权
* @param string $html 需要采集的html源代码
* @return string
*/
function get_real_title($str){
$str = str_replace(array('-','—','|'),'_',$str);
$splits = explode('_', $str);
$l = 0;
foreach ($splits as $tp){
$len = strlen($tp);
if ($l < $len){$l = $len;$tt = $tp;}
}
$tt = trim(htmlspecialchars($tt));
return $tt;
}
//以下是测试
$title_1 = '代号PHPCMS V9产品正式发布公测版本 - 站长之家';
$title_2 = 'PHPCMS再战江湖 V9产品正式发布公测版本 - 站长网 admin5.com';
$percent = title_similar($title_1,$title_2);
echo '相似百分比:'.$percent.'%';
echo "<br />\n";
?>