Jetzt anmelden...

Login
Passwort
Registrieren

PHP Tutorial #13

Funktionen für Strings

Gute Kenntnisse in der String-Verarbeitung sind für einen PHP-Entwickler essentiell. PHP bietet uns hierzu eine Vielzahl vordefinierter Funktionen, die uns bei der Arbeit mit Strings sehr hilfreich sind. Die wichtigsten zeigen wir euch hier.

Kommentare [0]

Stefan 15.08.2019

Infos zum Artikel

Kategorie PHP
Autor Stefan
Datum 15.08.2019

Schnellüberblick der String-Funktionen

Name Erklärung und Beispiel
strlen() echo strlen("Solar System); // 12
Gibt die Länge eines Strings zurück
str_word_count() echo str_word_count("Hallo PHP"); // 2
Gibt die Anzahl der Wörter in einem String zurück
trim() echo trim(" Marius "); // "Marius"
Entfernt Leerzeichen am Anfang und Ende des Strings
strpos() echo strpos("Finsternis", "stern"); // 3
Sucht ein bestimmtes Zeichen/ Zeichenkette in einem String und liefert die Position zurück. Wenn nicht gefunden: false.
strrev() echo strrev("Hallo"); // ollaH
Kehrt einen String um
substr() echo substr("abcdef", 3); // def
Liefert einen Teilstring zurück.
str_replace() echo str_replace("ß", "ss", "Straße"); // Strasse
Ersetzt in einem String eine bestimmte Zeichenfolge durch eine andere und liefert das Ergebnis zurück.
explode() $teile = explode(" ", "Orange Zitrone Erdbeere Apfel");
echo $teile[0]; // Orange
Zerlegt einen String und liefert Einzelteile in einem Array zurück
strtolower() echo strtolower("Athen"); // athen
Liefert einen String in Kleinbuchstaben zurück

Die wichtigsten Funktionen für Strings

Das PHP-Handbuch stellt eine ganze Menge vordefinierter Funktionen zur String-Behandlung für uns bereit. Sehen wir einige davon nun genauer an.

strlen()

strlen (string $string) : int

Die Funktion strlen() ermittelt die Länge eines Strings. Die Funktion erwartet als Argument eine Zeichenkette und gibt deren Länge als int-Wert zurück.

$name = "Solar System";
$laenge = strlen($name);
echo $laenge; // 12

Leerzeichen sind auch Zeichen und werden mitgezählt.

str_word_count()

str_word_count (string $string) : int

Eine einfache und praktische Funktion, die die Wörter in einem String zählt.

$str = "Hallo PHP";
echo str_word_count($str); // 2

trim()

trim (string $str [, string $characters]) : string

Mit trim() können wir Leerzeichen am Anfang und am Ende eines Strings entfernen. Die Funktion liefert das Ergebnis als neuen String zurück.

$name = " Marius ";
$name2 = trim($name);
echo $name; // "Marius"

trim() wird sehr häufig eingesetzt, um mögliche Leerzeichen in Benutzereingaben zu entfernen.

Wie wir sehen, hat die Funktion noch einen zweiten fakultativen Parameter. Mit trim() können wir nämlich auch andere Zeichen als das Leerzeichen entfernen. Wir müssen der Funktion dann einfach als zweites Argument eine Liste von Zeichen übergeben, die gelöscht werden sollen:

$name = "-MariusXY";
$name2 = trim($name, "-XY");
echo $name2; // "Marius

In diesem Beispiel sollen die Zeichen - , X und Y am Anfang und Ende gelöscht werden. So wird durch den Funktionsaufruf trim($name, "-XY") der String "Marius" zurückgeliefert.

strpos()

strpos (string $haystack , mixed $needle) : int

Diese Funktion ermittelt das erste Vorkommen eines gesuchten Zeiches oder einer Zeichenkette. Der Parameter $haystack ist der String, der durchsucht werden soll und $needle ist das, was darin gesucht wird.

haystack heißt übersetzt übrigens "Heuhaufen" und needle ist die "Nadel" - genau darum geht es hier: "Die Nadel im Heuhaufen suchen".

Die Funktion gibt einen int-Wert zurück, der die Position des gesuchten Zeichens/ Zeichenkette markiert. Wenn nichts gefunden wird, wird false zurückgeliefert.

$satz = "Der Mond und die Finsternis";
$suche = "stern";
$pos = strpos($satz, $suche);
echo "'$suche' ist an Position $pos";
// 'stern' ist an Position 20

Die Zählung beginnt bei 0. Deshalb müssen wir bei einer Prüfung, ob das gesuchte Zeichen/ Zeichenkette enthalten ist, das dreifache === verwenden:

$satz = "Der Mond und die Finsternis.";
$suche = "D";
$pos = strpos($satz, $suche); // 0
if($pos === false){
    echo "'$suche' ist nicht enthalten.";
}
else{
    echo "'$suche' ist an Position $pos";
}
// 'D' ist an Position 0

D ist auf Position 0 enthalten. Aber: Bei einem doppelten == würde fälschlicherweise 'D' ist nicht enthalten ausgegeben. Denn bei einer Prüfung 0 == false wird 0 zu false konvertiert, weshalb der Ausdruck true ergibt. Um das zu verhindern, verwenden wir den dreifachen Vergleichsoperator ===.

strrev()

strrev (string $string) : string

Diese Funktion kehrt einen String einfach um:

$str = "Hallo Welt!";
echo strrev($str); // !tleW ollaH

substr()

substr (string $string , int $start [, int $length ]) : string

substr() gibt einen Substring (=Teilstring) zurück. Der erste Parameter ist der String, der zerlegt werden soll.

Der Parameter $start gibt die Position an, von der aus der Substring gebildelt werden soll.

Der fakultative Parameter $length legt die Länge des Substring fest. Wird der Parameter nicht verwendet, wird der String bis zum Ende zurückgeliefert.

$str = "abcdef";
$substr = substr($str, 3);

echo $substr; // def

str_replace()

str_replace (mixed $search , mixed $replace, mixed $subject) : mixed

str_replace() ersetzt in einem String eine bestimmte Zeichenfolge durch eine andere und liefert das Ergebnis zurück.

Hier ein Beispiel, um einzelne Zeichen zu ersetzen:

$str = "Außerhalb der Straße.";
$strNeu = str_replace("ß", "ss", $str);
echo $strNeu; // Ausserhalb der Strasse

In diesem Beispiel ersetzen wir ß mit ss.

Wir können auch mehrere zusammenhängende Zeichenketten (Wörter) ersetzen:

$str = "Hallo Michael, du bist nun eingeloggt.";
$strNeu =  str_replace("Michael", "Sabrina", $str);
echo $strNeu; // Hallo Sabrina, du bist nun eingeloggt.

Ganz praktisch ist die Funktion auch, wenn wir wir mehrere Zeichen oder Zeichenketten gleichzeitig ersetzen wollen. In solchen Fällen arbeiten wir einfach mit Arrays und setzen sie als Argumente ein:

$str = "Frühling in Österreich";
$sonderzeichen = array("ä", "ö", "ü", "Ä", "Ö", "Ü");
$ohne = array("ae", "oe", "ue", "Ae", "Oe", "Ue");

echo str_replace($sonderzeichen, $ohne, $str);
// Frueling in Oesterreich

explode()

explode (string $delimiter , string $string) : array

Eine sehr praktische Funktion, die einen String zerlegt und die Einzelteile als String-Array zurückliefert.

Der erste Parameter ist der Trenner, an dem die Zerteilung stattfinden soll. Der zweite Parameter ist der String, der zerlegt werden soll.

$str = "Orange Zitrone Erdbeere Apfel";
$teile = explode(" ", $str);

echo $teile[0]; // Orange
echo $teile[1]; // Zitrone

strtolower()

strtolower (string $string) : string

strtolower setzt einen String in Kleinbuchstaben um.

$str = "This Is Sparta!";
$strNeu = strtolower($str); // this is sparta

Übungen

einfach

Ersetze im String "Göthe" das Zeichen ö mit oe und gib das Ergebnis am Bildschirm aus.

Lösung ein-/ausblenden

mittel

Speichere folgenden String in einer Variablen (copy/paste):
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam

Prüfe nun mit einer geeigneten Funktion, ob die Zeichenkette magna in diesem String enthalten ist. Es sollen bei ja oder nein entsprechende echo-Meldungen angezeigt werden.

Lösung ein-/ausblenden

schwer

Achtung, sackschwere Aufgabe aus der Praxis:

Gegeben ist ein Array von Strings mit Kundendaten:

$kunden = array(
"Name: Keller, Vorname: Thomas, Wohnort: Stuttgart",
"Name: Florentine, Vorname: Sabrina, Wohnort: München",
"Name: Jones, Vorname: Pepe, Wohnort: Bern");

Gib nun die Daten am Bildschirm wie in folgender Tabelle aus:

Kunden Array PHP

Wer diese Aufgabe löst, hat den Diamond wirklich verdient. Viel Erfolg!

Lösung ein-/ausblenden

Kommentar schreiben

Nur angemeldete und aktivierte Benutzer können kommentieren.

Alle Kommentare

Es gibt bislang noch keine Kommentare zu diesem Thema.

Mehr zu Parametern

Was sind variabler Parameterlisten und optionale Parameter?

Operatoren einsetzen

Es gibt eine Vielzahl an Operatoren. Wir haben eine Übersicht erstellt

Arrays in PHP

Arrays ermöglichen das Speichern von Daten in einer übergeordneten Datenstruktur.

FALCONBYTE.NET

Handmade with 🖤️

© 2018, 2019 Stefan E. Heller

Impressum | Datenschutz

facebook programmieren lernen twitter programmieren lernen youtube programmieren lernen