PHP Substr - Teilstrings aus einem String extrahieren

Unter den zahlreichen Funktionen, die PHP zur Verarbeitung von Zeichenketten zur Verfügung stellt, existiert die Funktion substr – Substr steht als Abkürzung für Substring (Teilstring). Ihre Aufgabe besteht darin, aus einem zuvor definierten String einen bestimmten Teil zu entnehmen und als Rückgabewert zurückzugeben. Dabei zeigt sich substr recht flexibel. Anders als unter zahlreichen anderen Programmiersprachen – vgl. Substring in JavaScript – kann substr in PHP Teilstrings durch Angabe bestimmter Parameterkonstellationen vom Ende des angegebenen Quellstrings her extrahieren.

Substr erwartet mindestens zwei Parameter, die das zu bearbeitende String, sowie den Startpunkt (genauer gesagt dessen Indexposition) angibt, ab dem ein Teil der Zeichenkette entnommen werden soll. Dabei können als Startpunkt positive, wie negative Werte angegeben werden. Soll das Teilstring von vorne entnommen werden, so ist die Indexposition für den Startpunkt positiv und beginnt bei 0 (erstes im String gespeichertes Zeichen). Enthält die Zeichenkette weniger Zeichen als der Startpunkt angibt, so liefert die Funktion den Boolean-Wert FALSE zurück. Wird ein negativer Wert als Startpunkt angegeben, so ist damit das n-te Zeichen ab dem Ende des Strings gemeint, wobei der Wert -1 das letzte im String gespeicherte Zeichen addressiert. Das erste Zeichen wird auf diese Art mit dem negierten Wert der Stringlänge angesprochen. Anders als bei der positiven Addressierung führt die Angabe eines größeren negativen Wertes dazu, dass die Zeichenkette vom ersten Zeichen an entnommen wird.

Mittels eines optionalen dritten Parameters kann die Länge des Teilstrings angegeben werden, die substr ab dem Startindex extrahiert. Auch hier können positive und negative Werte angegeben werden. Ein positiver Wert entnimmt die entsprechende Anzahl von Zeichen aus dem Quellstring. Die Angabe eines negativen Längenwertes veranlasst substr dazu alle Zeichen bis zum n-ten Zeichen ab Ende des Strings zurückzugeben. Bei der Verarbeitung der Funktion berechnet substr ggf. erst die absolute Indexposition des Startpunktes (aus einem negativ angegebenen Startindex) sowie die absolute Position des letzen zu extrahierenden Zeichens. Tritt dabei der Fall ein, dass die Indexposition des letzten zu entnehmenden Zeichens kleiner oder gleich der des Startpunktes ist, so liefert substr ein leeres String zurück.

PHP Substring Beispiel: Demonstration der Paramterkonstellationen

<?php
    // Mit folgendem String wird fortan gearbeitet
    $zeichenkette = 'Mal sehen!';

    // Länge des in der Variablen gespeicherten Strings ausgeben
    echo "Anzahl der Zeichen: " . strlen ($zeichenkette) . "<br>";

    // Positiver Startindex und bis zum Ende der Zeichenkette
    echo "Ab dem 5. Zeichen: " . substr ($zeichenkette, 4) . "<br>";

    // Aufruf mit zu hohem Startindex (Indexpositionen des Strings laufen
    // von 0 bis 9, wenn das String 10 Zeichen enthält)
    if (substr ($zeichenkette, 10) == FALSE)
        echo "Startindex zu hoch!<br>";

    // Ähnlich wie beim letzten Aufruf - Vom Ende gesehen ist das erste
    // Zeichen im String mit dem Parameter -10 zu erreichen. Wie oben bereits
    // beschrieben wird hier das komplette String geliefert.
    echo "Negativer Startindex: " . substr ($zeichenkette, -15) . "<br>";
    // Die Absolute Indexposition errechnet sich auch hier aus der
    // Stringlänge + (negativem) Startwert
    echo "Negativer Startindex: " . substr ($zeichenkette, -6) . "<br>";

    // Drei Zeichen, beginnend ab dem ersten Zeichen
    echo "Die ersten Drei: " . substr ($zeichenkette, 0, 3) . "<br>";
    // Fünf Zeichen ab dem fünften Zeichen
    echo "Das zweite Wort: " . substr ($zeichenkette, 4, 5) . "<br>";

    // Positiver Startindex bis zum vorletzten Zeichen
    echo "Vom 5. Zeichen bis zum vorletzten: " . substr ($zeichenkette, 4, -1) . "<br>";
    // Negativer Startpunkt mit Anzahl der zu entnehmenden Zeichen
    echo "Drei Zeichen ab dem 6. Zeichen von hinten: " . substr ($zeichenkette, -6, 3) . "<br>";
    // Start- und Endindex relativ zum Ende des Strings
    echo "Zehntes bis zum siebten Zeichen (beides ab Stringende) : " . substr ($zeichenkette, -10, -7) . "<br>";
?>

Anzahl der Zeichen: 10
Ab dem 5. Zeichen: sehen!
Startindex zu hoch!
Negativer Startindex: Mal sehen!
Negativer Startindex: sehen!
Die ersten Drei: Mal
Das zweite Wort: sehen
Vom 5. Zeichen bis zum vorletzten: sehen
Drei Zeichen ab dem 6. Zeichen von hinten: seh
Zehntes bis zum siebten Zeichen (beides ab Stringende) : Mal

Letzte Posts aus unserem Forum

Wer kennt .....

Hallo erstmal wer kennt von euch einen WEbprogrammieren,desginer der mir eine Seite erstellen kann ,Communityportal sowas in der art wie ... » mehr

von NCWebmaster am Mittwoch, 7. Oktober 2009 00:32 in PHP - bisher 1 Antwort
Letzter Beitrag: Mittwoch, 7. Oktober 2009 13:26 von kalle

Hallo auch, da gibt es sicher viele die das machen würden, allerdings deutlich weniger die es auch tatsächlich machen könnten - noch einmal weniger ... » mehr

oh Mann

Hallo erstmals..... also ich kenn mich ja nicht so aus, aber ich denke die Menschheit fliegt auf den Mond, dann müsste es auch eine Lösung für mein ... » mehr

von Dummbazz am Dienstag, 24. Februar 2009 15:11 in PHP - bisher 2 Antworten
Letzter Beitrag: Mittwoch, 25. Februar 2009 11:48 von Dummbazz

Danke für die aufmunternde Worte... ... » mehr

counter auch ohne datenbank?

tach auch, ich habe nach einem besucherzähler gesucht, der auf meiner seite anzeigt, wieviele besucher sich dort aufhalten. allerdings habe ich ... » mehr

von marcel am Montag, 8. Dezember 2008 12:21 in PHP - bisher 1 Antwort
Letzter Beitrag: Montag, 8. Dezember 2008 13:34 von alm

Hallo, sicher kann die Counter-Klasse so umgeschrieben werden, dass sie auch ohne Datenbankanbindung funktioniert. Allerdings würde das einer neuen ... » mehr

DAten speichern und abfragen

Hallo an Alle! Hoffe, dass ich hier im richtigen Forum bin. Vielleicht kann mir jemand einen Tip geben. Ich möchte auf meiner Webpage ein Formular ... » mehr

von muenchner am Samstag, 12. Juli 2008 18:31 in PHP - bisher 1 Antwort
Letzter Beitrag: Montag, 14. Juli 2008 08:49 von alm

Hallo, ich bin mir nicht sicher, wie das jetzt gemeint ist! Geht es um die Frage: Sollen die Optionen des Forumlars (die einzelnen Checkboxen) in ... » mehr

Tutorials :: PHP & MySQL - Problem

Hi, zunächsteinmal danke für das Tutorial: ... » mehr

von migges am Montag, 2. Juni 2008 12:05 in PHP - bisher 3 Antworten
Letzter Beitrag: Dienstag, 3. Juni 2008 11:45 von alm

Das mit den Oder-Operatoren wundert mich ein wenig... Welchen Fehler hat der Interpreter an diesen Stellen ausgegeben? Ich habe bislang mit ... » mehr

¬ Tutorials



¬ Insolvenzrecht