SELFPHP

SELFPHP-Druckversion
Original Adresse dieser Seite:
http://www.selfphp.de/praxisbuch/praxisbuchseite.php?site=177&group=31&page=2
© 2001-2017 E-Mail SELFPHP OHG, info@selfphp.de
© 2005-2017 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de


Suchen und Vergleichen von Zeichenketten


Die Funktionen dieser Funktionsgruppe dienen dem Vergleich von Zeichenketten sowie der Suche nach Zeichen und Zeichenketten.

FunktionBeispielBeschreibung
strcmp($str1,$str2)$resultat = strcmp($str1,$str2)Vergleicht zwei Zeichenketten. Wenn $str1 < $str2, wird –1, im umgekehrten Fall 1 und bei Gleichheit 0 zurückgegeben.
strcasecmp($str1,$str2)$resultat = strcasecmp($str1,$str2)Wie strcmp(), aber case-insensitive, d. h. berücksichtigt Groß- und Kleinschreibung nicht.
strnatcmp($str1,$str2)$resultat = strnatcmp ($str1,$str2)Wie strcmp(), aber unter Berücksichtigung einer »natürlichen« Sortierreihenfolge bei numerischen Strings, d. h. »abc90de« ist kleiner als »abc100e«.
strnatcasecmp($str1,$str2)$resultat = strnatcasecmp ($str1,$str2)Wie strnatcmp(), aber case-insensitive, d. h. berücksichtigt Groß- und Kleinschreibung nicht.
strpos($str,$strs,$pos)$pos = strpos($str,$strs,$pos)Findet die Position des ersten Auftretens einer Zeichenkette $strs ab Position $pos.
stripos ($str, $strs)$pos = stripos ($str, $strs)Findet die Position des ersten Auftretens eine Strings $strs innerhalb der Zeichenkette $str.
strrpos($str,$char)$pos = strrpos ($str, $char)Findet die Position des letzten Auftretens eines einzelnen Zeichens $char.
strripos($str,$strs[,$pos])$pos = strripos($str,$char)Findet die Position des letzten Auftretens einer Zeichenkette $strs ab Position $pos.
strspn($str1,str2)$anzahl = strspn ($str1,$str2)Ermittelt die Anzahl der übereinstimmenden Zeichen.
strcspn($str1,$str2)$anzahl = strcspn($str1,$str2)Ermittelt die Anzahl der nicht übereinstimmenden Zeichen.
strstr($str,$strs)$str1 = strstr($str,$strs)Sucht das erste Auftreten einer Zeichenkette $strs und gibt diese und alle folgenden Zeichen zurück.
stristr($str,$strs)$str1 = stristr($str,$strs)Wie strstr(), Groß- bzw. Kleinschreibung werden jedoch nicht berücksichtigt.
strchr($str,$strs)$str1 = strchr($str,$strs)Sucht das erste Auftreten einer Zeichenkette $strs und gibt diese und alle folgenden Zeichen zurück.
strrchr($str,$strs)$str1 = strrchr($str,$strs)Sucht das letzte Auftreten einer Zeichenkette $strs und gibt diese und alle folgenden Zeichen zurück.
substr($str,$start,$length)$str1 = substr($str,$start,$length)Gibt Teil einer Zeichenkette ab $start mit der Länge $length zurück.
substr_count($str,strs)$anzahl = substr_count($str,strs)Ermittelt, wie oft eine Zeichenkette $strs in einem String $str vorkommt.
similar_text ($str1, $str2[, $prozent])similar_text ($str1, $str2,$prozent);Berechnet die Ähnlichkeit zweier Zeichenketten. Falls Sie als Referenz ein drittes Argument angeben, wird die Ähnlichkeit als Prozentwert errechnet.
soundex($str)soundex ("Knuth") == soundex ("Kant")Berechnet die Laut-Ähnlichkeit eines Strings.
levenshtein($str1,$str2)$diff = levenshtein($str1,$str2)Errechnet die Differenz zwischen den als Argumente übergebenen zwei Strings. Ist einer der Strings länger als die zulässigen 255 Zeichen, wird -1 zurückgegeben. Die Levenshtein-Differenz ist definiert als die minimale Anzahl an Zeichen, die ersetzt, eingefügt oder gelöscht werden müssen, um den $str1 nach $str2 umzusetzen.
metaphone($str)metaphone("Hallo") == metaphone("Hello");Berechnet den metaphone-Schlüssel eines Strings. Genau wie soundex() berechnet metaphone den gleichen Schlüssel für ähnlich klingende Wörter. Die Metaphone-Funktion arbeitet genauer als soundex(), da sie die Grundregeln der englischen Aussprache kennt. Die durch metaphone erzeugten Schlüssel sind von variabler Länge.


Einsatz von strcmp()

Mithilfe von strcmp() werden zwei Zeichenketten auf der Binärebene verglichen. Folgende Werte werden zurückgegeben:

Beispiel

<?php
$spruch1 = "Hallo Welt";
$spruch2 = "Hallo Welt";
$resultat = strcmp($spruch1, $spruch2);

if ($resultat == 0) {
  echo "Sind Gleich!";
} elseif ($resultat < 0) {
  echo "spruch1 ist kleiner als spruch2";
} else {
  echo "spruch1 ist grösser als spruch2";
}
?>
{PSP}Ausgabe
Sind Gleich!

Bei einem mit der Funktion strcmp() durchgeführten Vergleich wird z. B. der String spruch99abc größer als der String spruch100abc sein. Sollte bei derartigen, teilweise numerischen Strings eine natürliche Sortierreihenfolge, welche die enthaltenen Zahlen mitberücksichtigt, erforderlich sein, kann die Funktion strnatcmp() verwendet werden.

Beispiel

<?php
$spruch1 = "spruch99abc";
$spruch2 = "spruch100abc";
$resultat = strnatcmp($spruch1, $spruch2);

if ($resultat == 0) {
  echo "Sind Gleich";
} elseif ($resultat < 0) {
  echo "spruch1 ist kleiner als spruch2";
} else {
  echo "spruch1 ist grösser als spruch2";
}
?>

Ausgabe
spruch1 ist kleiner als spruch2

Der Einsatz von strcmp() hätte bei diesem Beispiel das umgekehrte Ergebnis zur Folge.