PHP: Wie oft kommt ein Zeichen in String vor? - PHP FAQ

PHP bietet viele Funktionen, um Strings - also Zeichenketten, zu manipulieren. Eine häufig gestellte Frage ist, wie oft ein Zeichen in String vorkommt. Hier verschiedene Lösungen.

Dieser Artikel ist in der PHP FAQ Serie unter den häufig gestellten Fragen zu PHP.

Was ist ein String?

Der PHP String ist eine Zeichenketten, der aus Buchstaben, Zahlen und Sonderzeichen bestehen kann. Dieser wird in Hochkomma (') oder Anführungszeichen (") meist in einer Variable ($...) für die Scriptlaufzeit gespeichert.

Um nun bestimmte Zeichen innerhalb von String zu zählen oder zu behandeln, können jeder PHP Funktion die Variablen übergeben werden, welche den String / die Zeichenkette enthält.

Bestimmte Zeichen mit PHP zählen

Eine Zeichenkette oder einzelne Zeichen innerhalb eines Strings, kannst du mittels der Funktion substr_count() ermitteln.
$sString = 'Mein Tag war angenehm. Erst auf Arbeit, dann einkaufen, nun entspannen.';echo substr_count($sString, 'an');


Die echo-Rückgabe wäre "3", denn "an" kommt an drei Stellen vor:
Mein Tag war angenehm. Erst auf Arbeit, dann einkaufen, nun entspannen.

Die substr_count Funktion kann auch zwischen Groß- und Kleinschreibung unterscheiden (Case-Sensitive). Ein anderer Startpunkt ab wann gezählt werden soll, kann ebenfalls festgelegt werden.

Genauere Informationen findest du bei PHP.net: substr_count.

Alle Zeichen mit PHP zählen

Nehmen wir uns einen einfachen Satz und zählen alle Buchstaben mittels der Funktion count_chars(). Als Rückgabe erhalten wir ein Array mit allen Zeichen und wie oft diese vorkommen.
$sString = 'Wie war dein Tag?';$aCount = count_chars($sString);echo $sString;foreach($aCount AS $key => $value){	if($value != 0){		echo '<br />'.chr($key).' ('.$value.' mal)';	}}


Die Ausgabe:

Wie war dein Tag?(3 mal)? (1 mal)T (1 mal)W (1 mal)a (2 mal)d (1 mal)e (2 mal)g (1 mal)i (2 mal)n (1 mal)r (1 mal)w (1 mal)


Die erste (3 mal) sind die Leerzeichen.

chr() steht für Char, also das Zeichen. In der if-Abfrage sortieren wir alle Zeichen aus, die nicht vorkommen.

Wie viele Zeichen beinhaltet String? Stringlänge abfragen.

Um nur die Zeichenanzahl zu zählen, können wir mit strlen() arbeiten.
$sString = 'Mein Tag war angenehm. Erst auf Arbeit, dann einkaufen, nun entspannen.';echo strlen($sString);


Rückgabe: 71
Die 71 steht für 71 Zeichen. Jedes Zeichen erhöhr den Zähler um 1. Aber Achtung...

Hinweise:
Umlaute und Sonderzeichen (ä, ü, ö, ß) zählen doppelt. Ein ä erhöht den Zähler um 2 und wird wie (ae) behandelt.

Fazit

PHP stellt uns viele Möglichkeiten bereit, Zeichenketten zu be- und verarbeiten. Es gibt noch viele weitere Funktionen - ein moderner PHP Editor kann dir viele Funktionen inkl. dessen Werten vorschlagen.

Falls du noch Fragen hast, hinterlasse ein Kommentar.