burghi'sphp-dummies.de
PHP für Einsteiger und Fortgeschrittenere - an laufenden Scripten erklärt
07.09.2010, 01:53 Uhr - Impressum

Tutorials - Erste Schritte - Strings - substr

Tutorials - Erste Schritte
Strings: substr
Was man nun sehr sehr oft beim Pagebauen braucht, ist die Möglichkeit, Strings zu zerlegen.
Dies macht die Funktion substr() - SubString.
Dieser Funktion gibt man erst die Zeichenkette an, die sie behandeln soll, dann den Startpunkt, dann die Länge der Kette, die er aus der Kette extrahieren soll.
Im ersten Beispiel also die ersten 10 Zeichen
<?php
$text = "Freude schöner Götterfunken,
Tochter aus Elysium,
Wir betreten Feuertrunken,
Himmlische, dein Heiligtum!
Deine Zauber binden wieder,
Was die Mode streng geteilt.
Alle Menschen werden Brüder,
Wo dein sanfter Flügel weilt.
";

$sub = substr($text,0,10);

echo $sub;
?>
Was auffällt: Der erste Buchstabe ist nicht die 1, wie man so geläufig denken sollte, nein, es ist die 0.
Was im ersten Augenblick etwas seltsam erscheint, ist dann doch ganz praktisch, sollte man sich mal damit angefreundet haben.
Also... zumindest finde ichs praktisch, finde raus, ob du auch :-)

Ich habe jetzt z.B. eine Schleife, die mit jeweils die nächsten 5 Buchstaben aus dem Götterfunken rausnimmt:
<?php
$text = "Freude schöner Götterfunken,
Tochter aus Elysium,
Wir betreten Feuertrunken,
Himmlische, dein Heiligtum!
Deine Zauber binden wieder,
Was die Mode streng geteilt.
Alle Menschen werden Brüder,
Wo dein sanfter Flügel weilt.
";

$x = 0;

while($x < strlen($text))     /* solange $x kleiner als die Länge von $text... */
{
     echo substr($text, $x, 5) . "<br />\n";
     /* substr ab der Stelle $x, 5 Buchstaben lang. */
     $x = $x + 5;
}
?>
Der 2. Parameter, das "ab Stelle" kann auch einen negativen Wert bekommen - dann ist es eben von hinten:
<?php
$text = "Freude schöner Götterfunken,
Tochter aus Elysium,
Wir betreten Feuertrunken,
Himmlische, dein Heiligtum!
Deine Zauber binden wieder,
Was die Mode streng geteilt.
Alle Menschen werden Brüder,
Wo dein sanfter Flügel weilt.
";

$sub = substr($text,-6,6);

echo "Die letzten 6 Zeichen: " . $sub;
?>
Der 3. Parameter, das "Länge" kann auch einen negativen Wert bekommen -
dann sagt er nicht mehr die Länge an, die genommen werden soll, sondern bis wohin vor dem Ende der String genommen werden soll.
So nimmt dieses substr() die gesamte Kette, bis auf die letzten 10 Zeichen:
<?php
$text = "Freude schöner Götterfunken,
Tochter aus Elysium,
Wir betreten Feuertrunken,
Himmlische, dein Heiligtum!
Deine Zauber binden wieder,
Was die Mode streng geteilt.
Alle Menschen werden Brüder,
Wo dein sanfter Flügel weilt.
";


$sub = substr($text,0,-10);

echo $sub;
?>
Darüber hinaus kann man den 3. Parameter auch weglassen. Dann wird einfach die Zeichenkette bis zum Ende genommen:
<?php
$text = "Freude schöner Götterfunken,
Tochter aus Elysium,
Wir betreten Feuertrunken,
Himmlische, dein Heiligtum!
Deine Zauber binden wieder,
Was die Mode streng geteilt.
Alle Menschen werden Brüder,
Wo dein sanfter Flügel weilt.
";

echo substr($text,25);     /* einmal ab stelle 25 */
?>


<br />
<br />
<?php
echo substr($text,-25);     /* und einmal ab 25 Stellen vor dem Ende */
?>
© 2004-2005 - Impressum