通常在做内容网站的时候,需要在每一篇文章中出现与该文章相关的文章列表。对于大多数人来说,使用的方法通常是:建立一个关键词列表,判断每篇文章包含有那些关键词,最后根据关键词找出与某篇文章最相关的文章。对于内容比较复杂的网站,确定关键列表词显然会比较麻烦。

      具体思路:从文章列表中取出所有的文章标题,将所有的文章标题都同当前标题对比,将对比结果生成一个数组,按照相似度的大小由大到标题,利用similar_text将这些文章标题同原文章标题做对比,按标题的相似程度重新排列标题,就得到了与原文章相似的文章列表。 

     关键函数:

   

<?php
int similar_text ( string $first, string $second[, float $percent] )
?>

    它返回的是两个字根串的相同字节数。 

<?php
/**
* 获取相关
* @param [type] $title 当前标题
* @param [type] $arr_title 需要查找的数组
* @return [type] array() 按照相关程度与$title最相关的数组
*/
public function getSimilar($title,$arr_title){
$arr_len = count($arr_title);
for($i = 0;$i <= ($arr_len -1 ) ;$i++ ){
//获取两个字符串相似的字节数
$arr_similar[$i] = similar_text($arr_title[$i], $title , $persent);
}
arsort($arr_similar); //按照相似的字节数由高到低排序
reset($arr_similar); //将指针移到数组的第一单元
$index = 0;
foreach($arr_similar as $old_index=>$similar){
$new_title_array[$index] = $arr_title[$old_index];
$index++;
}
return$new_title_array;
}