Die wichtigsten PHP String-Funktionen (Teil 3.1: Teilen von Strings)
Eigene Anzeige: Ich biete professionelle Wordpress Themes mit tollen Features, hübschem Design und Premium Support. Weitere Informationen und Live Demo findest du auf meiner Website ThemeZee.com
Viele Strings müssen – insbesondere nach Eingabe vom Benutzer – im PHP Script weiter verarbeitet werden. So werden zum Beispiele Teile eines Strings ersetzt, mehrere Strings zusammengesetzt oder aufgeteilt, Leerzeichen entfernt oder auf einen bestimmten Wert überprüft. Und noch vieles vieles mehr… Auch hier liefert PHP von Haus aus eine Menge Funktionen mit.
Mh habe nach ein wenig Schreiben festgestellt dass das Ganze schon wieder viel zu viel wird für einen Beitrag ;) Darum teile ich den Punkt 3: Verarbeiten von Strings noch einmal in ein paar Einzelpunkte. Der erste ist Teil 3.1 Teilen von Strings.
explode
Diese Funktionen zerteilt einen String in mehrere Strings, schreibt diese in ein Array und gibt das Array zurück. Im ersten Parameter wird die Zeichenkette zur Trennung übergeben, d.h. immer wenn diese im String vorkommt erfolgt die nächste Teilung. Im Beispiel unten wird der String bei jedem Minus ( – ) geteilt. Geteilt wird die Variable $str, d.h. der zweite Parameter.
$str = "?user-profil-121";
$arr = explode('-', $str);
print_r($arr);
Folgende Ausgabe wird damit erzeugt:
Array ( [0] => ?user [1] => profil [2] => 121 )
Man beachtet hierbei, dass das Minus natürlich komplett wegfällt. Wenn jetzt kein Delimiter ( das Begrenzungszeichen, hier das Minus) zu finden ist, wird trotzdem ein Array zurückgegeben, in dem halt dann nur ein einziger, nämlich der komplette String steht. Optional kann noch ein dritter Parameter angegeben werden, wie oft der String zerteilt werden soll. Steht hier z.B. die Zahl zwei, wird der String nur einmal geteilt und der Rest des Strings nicht mehr.
Das Ilch Clanscript verwendet genau diese Funktion für die Ansteuerung der richtigen Seiten. Es wird einfach $arr[0] ausgelesen, die richtige Seite eingebunden und dort mit $arr[1] in die richtige switch-case Anweisung gesprochen. Mit $arr[2] wird schließlich die ID des Users übergeben und somit die richtigen Daten aus der Datenbank geholt.
str_split
Eine weitere Funktion um Strings zu zerteilen ist str_split. Bei dieser Funktion wird jedoch nicht bei einer bestimmten Zeichenkette getrennt, sondern nach der übergegeben Länge. Aus diesem Umstand wird der String auch in lauter Teile mit gleicher Länge geteilt. Auch hier wird wieder ein String Array mit den geteilten Strings zurückgegeben. Im ersten Parameter wird der zu teilende String übergeben, im zweiten die gewünschte Länge. Siehe Beispiel
$str = "hallo-das-ist-ein-test-von-web-manual"; $arr = str_split($str, 5); print_r($arr);
Durch den Code wird folgendes ausgegeben:
Array ( [0] => hallo [1] => -das- [2] => ist-e [3] => in-te [4] => st-vo [5] => n-web [6] => -manu [7] => al )
Wenn der zweite Parameter nicht übergeben wird, wird automatisch der Standardwert 1 verwendet, d.h. nach jedem Zeichen getrennt. Bei einem Wert kleiner 1 gibt die Funktion false zurück, bei einem Wert größer als der String wird gar nicht geteilt und der String als einziger Wert ins Array geschrieben.
Substr
Substr teilt einen String nicht wirklich, sondern gibt eigentlich einen Teil des Strings zurück. Den String der zurückgegeben werden soll wird durch einen Startwert und Länge bestimmt. Dazu werden folgende Parameter übergeben.
Im ersten Paramter wird der komplette String übergeben. Im zweiten dann der Startwert, d.h. wo die Rückgabe des Teilstrings beginnen soll. Und mit dem dritten Parameter schließlich die Länge, d.h. wieviel Zeichen ausgehend vom Startwert ausgehend genommen werden. Da Startwert und Länge auch negative Werte erlauben, kann diese Funktion ein wenig tricky sein. Aber am besten schaut man sich einfach mein Beispiel an, ich komm da selber auch oft noch durcheinander. Schreibt einfach einen Kommentar, wenn ihr irgenwo Probleme habt.
echo substr("abcdef", 1); // gibt "bcdef" zurück
echo substr("abcdef", 2); // gibt "cdef" zurück
echo substr("abcdef", 3, 2); // gibt "de" zurück
echo substr("abcdef", -1); // gibt "f" zurück
echo substr("abcdef", -2); // gibt "ef" zurück
echo substr("abcdef", -3, 1); // gibt "d" zurück
echo substr("abcdef", 0, -1); // gibt "abcde" zurück
echo substr("abcdef", 2, -1); // gibt "cde" zurück
echo substr("abcdef", 4, -4); // gibt "" zurück
echo substr("abcdef", -3, -1); // gibt "de" zurück
Hierbei bitte noch beachten, dass der String mit der Position 0 anfängt. Wenn man also einen Startwert von 0 eingibt, ist das ‘a’ gemeint, bei 1 ‘b’, bei 2 ‘c’ usw. Bei einem negativen Startwert wird der Startwert einfach vom Ende des Strings aus berechnet, bei negativer Länge geht der “Zeiger” nach links und nicht nach rechts. Wird keine Länge angegeben, wird alles vom Startwert ausgehend ausgegeben. Liest sich komplizierter als in der Praxis ist ;)


[...] dem Teilen von Strings in Teil 3.1 kommen wir nun zu Funktionen, mit denen man Strings verändern [...]