int similar_text(string $first, string $second, float &$percent = null)
// 僅取得匹配字元數
echo similar_text('ly89cn', 'ly89'); // 輸出 4
// 取得百分比
similar_text('ly89cn', 'ly89', $percent);
echo $percent; // 輸出 80
echo similar_text('王業樓的個人博客', '王業樓'); // 輸出 9 (位元組數)
similar_text('王業樓的個人博客', '王業樓', $p);
echo $p; // 輸出 54.545454545455
注意:similar_text() 以位元組計算,UTF-8 中文字佔 3 位元組,結果可能不符直覺。中文相似度建議改用 levenshtein() 或專門中文分詞演算法。
levenshtein():計算編輯距離,速度較快,適合長字串。similar_text():精確度較高(演算法不同),但複雜度 O(N³),長字串效能較差。將文章標題與資料庫所有標題逐一 similar_text() 比對,按相似度降序排列,取前 N 筆作為相關推薦。注意效能優化:可先以關鍵字過濾候選集,再精確計算。