this is a single of this project

Großbuchstaben im String zählen

Es gibt mit der PHP-Funktion count_chars() eine Menge Möglichkeiten, einen String auf bestimmte Eigenschaften zu überprüfen und seine Zeichen zu zählen. Nicht möglich ist allerdings die Bestimmung der Kleinbuchstaben, Großbuchstaben oder Ziffern. Diese Funktion kann aber einfach ergänzt werden.

Die folgende Funktion zählt nur die Großbuchstaben innerhalb eines Strings und gibt die Anzahl der gefundenen Großbuchstaben als Integer zurück.

/**
 * count all upper chars in a string
 * 
 * @param string $str    string to count
 * @return int           count of the upper chars in string
 */
function count_chars_upper( $str ) {

    $i_Count = 0;
    $pattern = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
    for ($i = 0; $i < strlen($str); $i++) {

        if (strpos($pattern, substr($str, $i, 1)) !== false) {
            $i_Count++;
        }

    }

    return $i_Count;

}

Umlaute werden dabei nicht gezählt, können aber natürlich einfach in die Liste aufgenommen werden. Analog dazu lassen sich einfach die Kleinbuchstaben zählen, und natürlich die Ziffern.

/**
 * count all lower chars in a string
 * 
 * @param string $str    string to count
 * @return int           count of the lower chars in string
 */
function count_chars_lower( $str ) {

    $i_Count = 0;
    $pattern = 'abcdefghijklmnopqrstuvwxyz';
    for ($i = 0; $i < strlen($str); $i++) {

        if (strpos($pattern, substr($str, $i, 1)) !== false) {
            $i_Count++;
        }

    }

    return $i_Count;

}


/**
 * count all digits in a string
 * 
 * @param string $str    string to count
 * @return int           count of the digits in string
 */
function count_digits( $str ) {

    $i_Count = 0;
    $pattern = '0123456789';
    for ($i = 0; $i < strlen($str); $i++) {

        if (strpos($pattern, substr($str, $i, 1)) !== false) {
            $i_Count++;
        }

    }

    return $i_Count;

}

Es gibt sehr viel elegantere Methoden mit Regex etc. Ob die Performance allerdings so viel besser ist, hängt von vielen Faktoren ab. Diese Funktionen prüfen einfach jedes Zeichen im String. Die erlaubten Zeichen können natürlich einfach angepasst werden.

(Bild: Bigstockphoto – Lizensiert von ISBeyl)

            

Über den Autor Alle Beiträge ansehen

Sebastian

Sebastian Beyl ist der Gründer des Agentur-Netzwerks ISBeyl und betreibt das Unternehmen bereits seit 1997. Der Medienpsychologe und Medieninformatiker ist leidenschaftlicher Programmierer.

Help-Desk