使用PHP similar text计算两个字符串相似度_php实例

在网站开发中,我们经常使用php similar text 计算两个字符串相似度;

1,similar_text的用法

    如果我想计算"ly89cn"和"ly89"的相似程度,有两种表示方法

复制代码 代码如下:

echo similar_text('ly89cn', 'ly89');

     这样输出4,因为他们有4个字符相等

复制代码 代码如下:

similar_text('ly89cn', 'ly89', $percent);
echo $percent;  

这样输出80,$percent代表百分比,说明他们有80%的相似程度

    当然也可以比较两个中文字符,比如“王业楼的个人博客”和“王业楼”

复制代码 代码如下:

echo similar_text('王业楼的个人博客', '王业楼');

    这样输出9,表示他们的9个字节数相等

复制代码 代码如下:

similar_text('王业楼的个人博客', '王业楼', $percent);
echo $percent;

     输出54.545454545455,注意中文字符可能不大准确!

PHP similar_text() 函数

实例

计算两个字符串的相似度,并返回匹配字符的数目:

复制代码 代码如下:

<?php
echo similar_text("Hello World","Hello Shanghai");
?>

运行实例

定义和用法

similar_text() 函数计算两个字符串的相似度。

该函数也能计算两个字符串的百分比相似度。

注释:levenshtein() 函数比 similar_text() 函数更快。不过,similar_text() 函数通过更少的必需修改次数提供更精确的结果。

语法

复制代码 代码如下:

similar_text(string1,string2,percent)

参数 描述
string1 必需。规定要比较的第一个字符串。
string2 必需。规定要比较的第二个字符串。
percent 可选。规定供存储百分比相似度的变量名。

技术细节

 

返回值: 返回两个字符串的匹配字符的数目。
PHP 版本: 4+

更多实例

例子 1

计算两个字符串之间的百分比相似度:

复制代码 代码如下:

<?php
similar_text("Hello World","Hello Shanghai",$percent);
echo $percent. "%";
?>

时间: 2024-12-02 20:49:16

使用PHP similar text计算两个字符串相似度_php实例的相关文章

正则表达式删除两个字符串间的字符实例

利用正则表达式删除两个字符串间的字符  代码如下 复制代码 <user>       <id>18752</id>       <name>方方</screen_name>       <name>方方</name>       <province>44</province>       <city>3</city> </user> 比如删除<user>

smarty模板中拼接字符串的方法_php实例

PHP页面传到Smarty模板上的变量(这里用,在Smarty上创建两个变量代替) 复制代码 代码如下: {assign var="name" value='Richard.Lee'}{assign var="age" value='27'} 1.想要在Smarty模板的某个位置输出(Richard.Lee---27)拼接方法:{$name|cat:"---"|cat:$age}解释:将变量$name."---".$age 拼

PHP将字符分解为多个字符串的方法_php实例

本文实例讲述了PHP将字符分解为多个子串的方法.分享给大家供大家参考.具体实现方法如下: 分解字符串主要通过Split()函数实现,该函数用于指把一个字符串通过指定的字符分解为多个子串,并分别存入数组中.其语法声明如下: array split(string pattern,string str[,int limit]); 其中的参数: pattern:用于指定作为分解标识的符号,注意该参数区分大小写. str:欲处理的字符串. limit:返回分解子串个数的最大值,缺省时为全部返回. 示例如下

thinkphp3.0输出重复两次的解决方法_php实例

本文实例讲述了thinkphp3.0输出重复两次的解决方法.分享给大家供大家参考.具体方法如下: 主入口文件如下: 复制代码 代码如下: <?php  define('APP_NAME','Admin');//定义项目名称  define('APP_PATH','./Admin/');//定义项目存放路径  define('THINK_PATH','./ThinkPHP/');//定义ThinkPHP核心文件所在路径  require THINK_PATH.'ThinkPHP.php';//导入

Mysql中分页查询的两个解决方法比较_php实例

mysql中分页查询有两种方式, 一种是使用COUNT(*)的方式,具体代码如下 复制代码 代码如下: SELECT COUNT(*) FROM foo WHERE b = 1; SELECT a FROM foo WHERE b = 1 LIMIT 100,10; 另外一种是使用SQL_CALC_FOUND_ROWS 复制代码 代码如下: SELECT SQL_CALC_FOUND_ROWS a FROM foo WHERE b = 1 LIMIT 100, 10; SELECT FOUND_

php循环table实现一行两列显示的方法_php实例

<table width="100%" border="0" cellspacing="1" cellpadding="0" style="background:#CCC"> <tr> <td align="center" bgcolor="#FFFFFF">第一列</td> <td align="cen

推荐几款用 Sublime Text 开发 Laravel 所用到的插件_php实例

我目前主要使用 Sublime Text 2 做 Laravel 开发,主要插件如下: 1.Blade Snippets:提供 Blade 模板自动补全 2.Laravel 4 Blade Highlighter:提供 Blade 关键字高亮 3.Laravel Generator:提供超高效率 Laravel 工作流 这就是之前教程里面说过的way/generators 的 Composer 包的另一个版本,是运行在编辑器里的.不过还是推荐使用命令行版,因为可以方便地读取历史记录,并加以修改.

php float不四舍五入截取浮点型字符串方法总结_php实例

php中截取浮点型大致有下面几种方法: 1. float round ( float $val [, int $precision ] ) 返回将 val 根据指定精度 precision (十进制小数点后数字的数目)进行四舍五入的结果.precision 也可以是负数或零(默认值).     echo round(4.3)  //4 2. string sprintf ( string $format [, mixed $args [, mixed $... ]] ) 返回格式化数据的字符串

多个PHP中文字符串截取函数_php实例

复制代码 代码如下: <?phpfunction sysSubStr($string,$length,$append = false) {     if(strlen($string) <= $length )     {         return $string;     }     else     {         $i = 0;         while ($i < $length)         {             $stringTMP = substr($s