PHP String similar_text() Function



The PHP String similar_text() function is used to check the similarity of two strings and returns the number of matched characters. The function finds the longest first common substring and repeats this for the prefixes and suffixes recursively.

The total of the lengths of all common substrings is returned. It can also calculate the percentage of similarity between two strings. The function calculates the similarity in percentage by dividing the result by the average length of the given strings multiplied by 100.

Syntax

Below is the syntax of the PHP String similar_text() function −

int similar_text ( string $string1, string $string2, float &$percent = null )

Parameters

Here are the parameters of the similar_text() function −

  • $string1 − It is the first string.

  • $string2 − It is the second string.

  • $percent − By giving a reference as the third argument, similar_text() calculates the similarity in percent by dividing the result by the average length of the given strings multiplied by 100.

Return Value

The similar_text() function returns the number of matching characters in both strings.

The number of matching characters is determined by identifying the longest first common substring and repeating the process for the prefixes and suffixes. The lengths of all identified common substrings are added.

PHP Version

First introduced in core PHP 4, the similar_text() function continues to function easily in PHP 5, PHP 7, and PHP 8.

Example 1

First we will show you the basic example of the PHP String similar_text() function to compare two simple strings and displays the number of matching characters.

<?php
   $string1 = "hello";
   $string2 = "hallo";

   $matchingChars = similar_text($string1, $string2);

   echo "The number of matching characters between '$string1' and '$string2' is: $matchingChars\n";
?>

Output

Here is the outcome of the following code −

The number of matching characters between 'hello' and 'hallo' is: 4

Example 2

This program compares two strings and returns the percentage similarity between them using the similar_text() function.

<?php
   $string1 = "apple";
   $string2 = "apricot";

   $percentage = 0;
   $matchingChars = similar_text($string1, $string2, $percentage);

   echo "Matching characters: $matchingChars\n";
   echo "Similarity percentage: $percentage%\n";
?> 

Output

This will generate the below output −

Matching characters: 2
Similarity percentage: 33.333333333333%

Example 3

This program takes two strings as input from the user and compares them using the similar_text() function and prints the similarity percentage.

<?php
   echo "Enter the first string: ";
   $string1 = trim(fgets(STDIN));

   echo "Enter the second string: ";
   $string2 = trim(fgets(STDIN));

   $percentage = 0;
   $matchingChars = similar_text($string1, $string2, $percentage);

   echo "Matching characters: $matchingChars\n";
   echo "Similarity percentage: $percentage%\n";
?> 

Output

This will create the below output −

Enter the first string: programming
Enter the second string: programmer
Matching characters: 8
Similarity percentage: 76.190476190476
php_function_reference.htm
Advertisements