Ce face similar_text
similar_text returnează numărul de caractere comune ale celor două texte. Dacă dai și al treilea parametru, în el primești asemănarea în procente (0-100).
Este utilă pentru potriviri aproximative: nume scrise puțin diferit, titluri duplicate. Calculul este mai lent decât levenshtein și lucrează pe octeți.
Parametri
| Parametru | Descriere |
|---|---|
$string1 |
Primul text. |
$string2 |
Al doilea text. |
$percent |
Opțional. Variabilă în care se salvează procentul de asemănare. |
Ce returnează
Numărul de caractere comune.
Exemple
Exemplul 1: Caractere comune și procent
<?php
$comune = similar_text("Ion Popescu", "Ioan Popescu", $procent);
echo "Caractere comune: $comune\n";
echo "Asemănare: " . round($procent, 1) . "%";
Rezultat
Caractere comune: 11
Asemănare: 95.7%
Exemplul 2: Detectarea titlurilor aproape identice
<?php
$nou = "Cum instalezi PHP pe Windows";
$existente = ["Cum instalez PHP pe Windows 11", "Ghid MySQL pentru începători"];
foreach ($existente as $titlu) {
similar_text(strtolower($nou), strtolower($titlu), $p);
echo $titlu . ": " . round($p) . "%\n";
}
Rezultat
Cum instalez PHP pe Windows 11: 93%
Ghid MySQL pentru începători: 28%
Greșeli frecvente
- Inversezi ordinea textelor și primești alt rezultat.
similar_textnu este simetrică în toate cazurile; folosește aceeași ordine peste tot.
Comenzi înrudite
levenshtein: Calculează câte modificări de caractere sunt necesare ca un text să devină altul (distanța Levenshtein).strcmp / strcasecmp / strncmp: Compară două texte și spune dacă primul este mai mic, egal sau mai mare decât al doilea.