PHP简单实现“相关文章推荐”功能的方法(此方法不是自创)
1, 所用的函数:
int similar_text ( string
$first
, string
$second
[, float
$percent
] )
利用similar_text将这些文章标题同原文章标题做对比,按标题的相似程度重新排列标题,就得到了与原文章相似的文章列表。
<?php
$demo_title
=
"简明现代魔法"
;
$demo_arr_title
=
array
(
"简单易懂的现代魔法"
,
"简单明了的现代魔法"
,
"简明扼要的古代魔法"
,
"不简单的现代魔法"
,
"很难懂的现代魔法"
);
$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/>"
;
}
//$title当前标题,$arrayTitle为需要查找的数组
functiongetSimilar(
$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
);
}
arsort(
$arr_similar
);
//按照相似的字节数由高到低排序
reset(
$arr_similar
);
//将指针移到数组的第一单元
$index
= 0;
foreach
(
$arr_similaras
$old_index
=>
$similar
)
{
$new_title_array
[
$index
] =
$arr_title
[
$old_index
];
$index
++;
}
return
$new_title_array
;
}
?>
程序运行结果:
1
2
3
4
|
与[简明现代魔法]最相关的前三个文章是: 1:简单明了的现代魔法 2:简单易懂的现代魔法 3:简明扼要的古代魔法 |