Ich möchte ihnen in diesem Tutorial erklären, wie sie mit der PHP Funktion similar_text() die Ähnlichkeit zwischen zwei Zeichenketten ermitteln. Um die Anzahl der gleichen Zeichen zu ermitteln, müssen Sie bei der PHP Funktion similar_text() zwei unterschiedliche Zeichenketten übermitteln.
Wenn Sie den dritten Parameter angeben, wird in der Variable der Prozentsatz der Ähnlichkeit ermittelt und gespeichert. Empfehlenswert wäre vor der Überprüfung mit der PHP Funktion similar_text(), die beiden Zeichenketten von Leerzeichen und Sonderzeichen zu entfernen. Da ansonsten, das Ergebnis verfälscht werden könnte.
Der Syntax:
similar_text(Zeichenkette eins, Zeichenkette zwei, optional Prozentsatz);
Code für Beispiel 1:
<?php
/*
* Created on 16.12.2009 by Nico Schubert
*/
/**
* Beispiel 1 / similar_text()
*/
/**
* Wir definieren in der Variable
$zeichenkette_eins unser erste Zeichenkette.
*/
$zeichenkette_eins = 'Nico';
/**
* In der Variable $zeichenkette_zwei speichern wir
unsere Vergleichzeichenkette.
*/
$zeichenkette_zwei = 'Nancy';
/**
* Nun prüfen wir mit der PHP Funktion
similar_text() wieviele Zeichen gleich
zwischen den Variablen $zeichenkette_eins und
$zeichenkette_zwei sind. Das Ergebnis
speichern wir in der Variable $zeichen.
Zusätzlich gegeben wir einen dritten
Parameter an mit den Variablennamen $prozent
um die ausgerechnete Ähnlichkeit in dieser
Variable zu speichern.
*/
$zeichen = similar_text($zeichenkette_eins,
$zeichenkette_zwei, $prozent);
/**
* Als letzten Abschnitt von diesem Beispiel, geben
wir mit den echo Befehl unserer Ausgabe aus.
*/
echo 'Die beiden Zeichenketten
('.$zeichenkette_eins.' und
'.$zeichenkette_zwei.') haben insgesamt
'.$zeichen.' gleiche Zeichen und daraus
ergibt sich eine Ähnlichkeit von
'.$prozent.' Prozent.<br>';
?>
Ausgabe des Beispiel 1:
Die beiden Zeichenketten (Nico und Nancy) haben insgesamt 2 gleiche Zeichen und daraus ergibt sich eine Ähnlichkeit von 44.4444444444 Prozent.
Wenn Sie mehrere Zeichenketten mit einer Zeichenkette vergleichen möchten, können Sie dies mit einer sogenannten foreach Schleife umsetzen. Nachfolgend finden sie ein Beispiel, wie sie dies umsetzen könnten.
Code Beispiel 2:
<?php
/*
* Created on 16.12.2009 by Nico Schubert
*/
/**
* Beispiel 2 / similar_text()
*/
/**
* Als erstes definieren wir in unserer Variable
$zeichenkette eine Zeichenkette.
*/
$zeichenkette = 'Nico';
/**
* Nun speichern wir in der Variable
$vergleich_zeichenketten ein Array von
unterschiedlichen Zeichenketten.
*/
$vergleich_zeichenketten = array('Lydia',
'Nadine');
/**
* Mit der PHP Funktion count() ermitteln wir die
Anzahl der enthaltenen Zeichenketten in der
Variable $vergleich_zeichenketten.
*/
$anzahl_vergleich_zeichenketten =
count($vergleich_zeichenketten);
/**
* Nun geben wir mit der PHP Funktion Echo die
Anzahl aus.
*/
echo 'Es werden jetzt
'.$anzahl_vergleich_zeichenketten.'
Zeichenketten mit der Zeichenkette
"'.$zeichenkette.'" überprüft.<br>';
/**
* Nun laufen wir das Array
$vergleich_zeichenketten durch mit einer so
genannten foreach Schleife und speichern jede
einzelne Zeichenkette in der Variable
$vergleich_zeichenkette.
*/
foreach($vergleich_zeichenketten as
$vergleich_zeichenkette) {
/**
* Wie im ersten Beispiel prüfen wir die
Ähnlichkeit und Anzahl der gleichen
Zeichen mit der PHP Funktion similar_text().
*/
$zeichen = similar_text($zeichenkette,
$vergleich_zeichenkette, $prozent);
/**
* Anschließend geben wir mit echo das Ergebnis
aus.
*/
echo '- Die beiden Zeichenketten
('.$zeichenkette.' und
'.$vergleich_zeichenkette.') haben
insgesamt '.$zeichen.' gleiche Zeichen
und daraus ergibt sich eine Ähnlichkeit
von '.$prozent.' Prozent.<br>';
}
?>
Ausgabe für Beispiel 2:
Es werden jetzt 2 Zeichenketten mit der Zeichenkette „Nico“ überprüft.
- Die beiden Zeichenketten (Nico und Lydia) haben insgesamt 1 gleiche Zeichen und daraus ergibt sich eine Ähnlichkeit von 22.2222222222 Prozent.
- Die beiden Zeichenketten (Nico und Nadine) haben insgesamt 2 gleiche Zeichen und daraus ergibt sich eine Ähnlichkeit von 40 Prozent.