分享两个PHP对字符串计算模糊匹配度的函数
更新:2022-06-01 13:01:50
人气:1705
来源:本站原创
A+
今天分享两个PHP中用于对字符串计算模糊匹配度的函数,感觉PHP还是很强大的,只是理想和现实还是有差距的。
similar_text() 函数 计算两个字符串的相似度。该函数也能计算两个字符串的百分比相似度。
<?php $biaozhun="李雷博客 PHP 博客 技术博客"; $string1="PHP 技术学习"; $string2="李雷 PHP在线 技术博客"; $nums=similar_text($biaozhun,$string1); echo "第1组匹配字符的数目: ".$nums."<br>";//计算的结果中空格也会计算在内 similar_text($biaozhun,$string1,$percent); echo "第1组字符串的相似度为: ".$percent." %<br>"; similar_text($biaozhun,$string2,$percent); echo "第2组字符串的相似度为: ".$percent." %<br>"; echo "-------------------------------------------------<br>"; ?>
输出结果:
第1组匹配字符的数目: 8 第1组字符串的相似度为: 42.105263157895 % 第2组字符串的相似度为: 72.340425531915 %
levenshtein() 函数 返回两个字符串之间的 Levenshtein 距离。
Levenshtein 距离,又称编辑距离,指的是两个字符串之间,由一个字符串转换成另一个字符串所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。
默认地,PHP 给每个操作(替换、插入和删除)相同的权重。然而,您可以通过设置可选的 insert、replace、delete 参数,来定义每个操作的成本。
Levenshtein值越低,越相近,限制255字符以内,否则返回-1
<?php $biaozhun="李雷博客 PHP 博客 技术博客"; $string1="PHP博客 PHP在线"; $string2="李雷 PHP在线 技术博客 www.mdaima.com"; echo "匹配度1:".levenshtein($biaozhun,$string1,1,1,1)."<br>"; echo "匹配度2:".levenshtein($biaozhun,$string2,1,1,1)."<br>"; ?>
输出结果:
匹配度1:18 匹配度2:24
我个人感觉,这两个函数的应用也只能是参考,实际应用中要根据具体情况进行判断。
推荐的文章
随手记
- ● 统信UOS系统如何设置指定时间自动重启系统的方法
- ● 自制(IP或域名)可信任的SSL证书,适用360、chrome等浏览器
- ● windows系统下php无法使用curl怎么办?
- ● 绿联UGREENKVM切换器(分屏器)快捷键丢失解决办法
- ● 统信UOS开机指定网址全屏启动自带浏览器以及屏蔽ALT+F4关闭
- ● xshellSSH连接Linux服务器防止超时退出
- ● php8开启OpenSSL扩展库报错disabledinstallext
- ● 统信系统linux安装php时的报错libxml-2.0>=2.7.6
- ● tidb关闭sql_mode=ONLY_FULL_GROUP_BY模式
- ● windows10如何开机自动运行bat文件
PHP经验分享
- ● PHP批量对TCP服务端指定多个IP非阻塞检查在线状态
- ● python实现TCP服务端持续接收关机、重启指令并输出结果【系列三】
- ● PHP给TCP服务端发送指令【系列二】
- ● PHP判断TCP服务端是否在线【系列一】
- ● PHP判断远程文件是否存在
- ● LINUX下用PHP获取CPU型号、内存占用、硬盘占用等信息代码
- ● PHP代码用UDP方式远程唤醒电脑让计算机开机
- ● apache下php生成验证码图片不能显示
- ● PHP使用AES加密解密示例(无偏移)
- ● Pluginmysql_native_passwordreported:''mysql_native_password'isdeprecate问题