In diesem Tutorial wird erklärt, wie man eine Anzahl von Zeichen vom Beginn einer Zeichenkette an zählt, bis ein Zeichen gefunden wird, das nicht in der zweiten Zeichenkette vorkommt. Es ist dabei egal, in welcher Reihenfolge die Zeichen in der zweiten Zeichenkette stehen. Dafür nutzt man die PHP-Funktion strspn().
Syntax:
strspn ($zeichenkette_eins, $zeichenkette_2);
Beispiel 1:
<?php
/*
* Created on 16.12.2009 by Nico Schubert
*/
/**
* Beispiel 1 für die PHP-Funktion strspn()
*/
$zeichenkette_eins = 'allxcx';
$zeichenkette_zwei = 'Hallo';
echo strspn($zeichenkette_eins,
$zeichenkette_zwei);
?>
Ausgabe des Beispiel 1:
3
Erklärung:
Die ersten 3 Zeichen der Zeichenkette 1 "allxcx" kommen auch in der Zeichenkette 2 "Hallo" vor, also "all". Das "x" kommt dagegen in Zeichenkette 2 nicht vor. Die Länge des Abschnitts ist deshalb 3 (Zeichen), diese Zahl wird also zurückgegeben.
Seit PHP 4.3.0 sind zwei weitere optionale Parameter möglich: (start) und (laenge). Mit diesen Parametern lassen sich die Anfangsposition (start) und die Länge (laenge) des zu untersuchenden Zeichenkettenabschnitts bestimmen. Mit (start) wird also die genaue Anfangsstelle festgelegt, von der aus die Zeichenkette untersucht wird, und mit (laenge) die Länge des zu untersuchenden Zeichenkettenabschnitts.
Syntax:
strspn ($zeichenkette_eins, $zeichenkette_2, $start, $laenge);
Beispiel 2:
<?php
/*
* Created on 16.12.2009 by Nico Schubert
*/
/**
* Beispiel 2 für die PHP-Funktion strspn()
*/
$zeichenkette_eins = 'allxcx';
$zeichenkette_zwei = 'Hallo';
$start = '1';
$laenge = 10;
echo strspn($zeichenkette_eins,
$zeichenkette_zwei, $start, $laenge);
?>
Ausgabe für Beispiel 2:
2
Erklärung:
Es sind die gleichen Zeichenketten wie bei Beispiel 1, also "allxcx" und "Hallo". Die zu untersuchende Anfangsstelle wird mit "$start=1" festgelegt, das heißt von "l" an, da man bei 0 mit dem Zählen anfängt. (Wäre "$start=0", würde man mit "a" bei "allxcx" anfangen.) Die Länge des zu untersuchenden Abschnitts ist mit "$laenge=10" angegeben, sie umfasst also die ganze erste Zeichenkette. In Beispiel 2 sind also von Beginn der festgelegten Anfangsstelle an die 2 Zeichen "ll" auch in Zeichenkette 2 vorhanden, das folgende "x" dagegen nicht, deshalb wird die Zahl 2 zurückgegeben.