网上找到的函数
<?php
//***************************************************************
//作者:[email protected]
//主页:http://freelyweb.googlepages.com/
//日期:2007-5-18
//转载本程序请保留该以上信息!
//***************************************************************
function getSimilar($title,$arr_title)//$title当前标题,$arrayTitle为需要查找的数组
{
$arr_len=count($arr_title);
for($i=0;$i<=($arr_len-1);$i++)
{
$arr_similar[$i]=similar_text($arr_title[$i],$title);//取得两个字符串相似的字节数
}
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;
}
?>
演示:我们建立一个5个数据的数组,并取出与目标标题最相关的前三个标题。
<?php
$demo_title="php如何获得与文章标题相关的文章";
$demo_arr_title=array("php学习教程","asp学习教程","php如何实现上传文件","php学习教程","asp和php那个更容易学习");
$new_array=getSimilar($demo_title,$demo_arr_title);
//print_r($new_array);
echo "与[$demo_title]最相关的前三个文章是:<br/>";
for($j=0;$j<=2;$j++)
{
echo ($j+1).":".$new_array[$j]."<br/>";
}
?>
以上测试了一下。有个问题,就是在实际情况下。相关标题的上链接地址要怎么得到啊?
哎。本人比较笨,想不出来
或许大家还有什么比较好用的函数。发一下,谢谢!
<?php
//***************************************************************
//作者:[email protected]
//主页:http://freelyweb.googlepages.com/
//日期:2007-5-18
//转载本程序请保留该以上信息!
//***************************************************************
function getSimilar($title,$arr_title)//$title当前标题,$arrayTitle为需要查找的数组
{
$arr_len=count($arr_title);
for($i=0;$i<=($arr_len-1);$i++)
{
$arr_similar[$i]=similar_text($arr_title[$i],$title);//取得两个字符串相似的字节数
}
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;
}
?>
演示:我们建立一个5个数据的数组,并取出与目标标题最相关的前三个标题。
<?php
$demo_title="php如何获得与文章标题相关的文章";
$demo_arr_title=array("php学习教程","asp学习教程","php如何实现上传文件","php学习教程","asp和php那个更容易学习");
$new_array=getSimilar($demo_title,$demo_arr_title);
//print_r($new_array);
echo "与[$demo_title]最相关的前三个文章是:<br/>";
for($j=0;$j<=2;$j++)
{
echo ($j+1).":".$new_array[$j]."<br/>";
}
?>
以上测试了一下。有个问题,就是在实际情况下。相关标题的上链接地址要怎么得到啊?
哎。本人比较笨,想不出来
或许大家还有什么比较好用的函数。发一下,谢谢!
于是,只要知道被匹配的 $demo_arr_title 的下标,就可知道相应的 url 了为此函数 需要做一个改动
原
foreach($arr_similar as $old_index=>$similar)
{
$new_title_array[$index]=$arr_title[$old_index];
$index++;
}
return $new_title_array;要改为
foreach($arr_similar as $old_index=>$similar)
{
$new_title_array[] = $old_index;
}
return $new_title_array;测试代码中的
for($j=0;$j<=2;$j++)
{
echo ($j+1).":".$new_array[$j]."<br/>";
}
要改为
for($j=0;$j<=2;$j++)
{
echo ($j+1).":".$demo_arr_title[$new_array[$j]]."<br/>";
}通过 $new_array[$j] 就可找到与 $demo_arr_title 对应的 url 信息了