Tipps - Suchstring am Wortanfang oder Wortende

Suchstring am Wortanfang oder Wortende

  • PHP
  • string
  • str_starts_with
  • str_ends_with
In PHP kann mittels strpos überprüft werden, ob ein Suchstring in einem String vorkommt.
strpos(string $haystack, string $needle, int $offset = 0): int|false
In einigen Fällen ist es aber wichtig, ob der Suchstring am Anfang oder am Ende des Strings vorkommt. Seit PHP 8.0 gibt es dafür die Funktionen str_starts_with und str_ends_with.
str_starts_with(string $haystack, string $needle): bool
str_ends_with(string $haystack, string $needle): bool
Beispiele:
$string = 'Mein Name ist Hase';
// liefert bool(true)
var_dump(str_starts_with($string, 'Mein'));
// liefert bool(false)
var_dump(str_starts_with($string, 'Hase'));
// liefert bool(true)
var_dump(str_ends_with($string, 'Hase'));
Beide Funktionen unterscheiden zwischen Groß- und Kleinschreibung und arbeiten byteweise, funktionieren aber auch mit UTF-8-Strings korrekt. Ein leerer Suchstring liefert immer true. Für PHP-Versionen vor 8.0 lassen sich die beiden Funktionen leicht nachbauen.
if(!function_exists('str_starts_with'))
{
function str_starts_with(string $haystack, string $needle): bool
{
return strncmp($haystack, $needle, strlen($needle)) === 0;
}
}
if(!function_exists('str_ends_with'))
{
function str_ends_with(string $haystack, string $needle): bool
{
return $needle === '' || substr($haystack, -strlen($needle)) === $needle;
}
}