startsWith() and endsWith() functions in PHP
You can use substr_compare
function to check start-with and ends-with:
function startsWith($haystack, $needle) {
return substr_compare($haystack, $needle, 0, strlen($needle)) === 0;
}
function endsWith($haystack, $needle) {
return substr_compare($haystack, $needle, -strlen($needle)) === 0;
}
This should be one of the fastest solutions on PHP 7 (benchmark script). Tested against 8KB haystacks, various length needles and full, partial and no match cases. strncmp
is a touch faster for starts-with but it cannot check ends-with.
PHP 8.0 and higher
Since PHP 8.0 you can use the
str_starts_with
Manual
and
str_ends_with
Manual
Example
echo str_starts_with($str, '|');
PHP before 8.0
function startsWith( $haystack, $needle ) {
$length = strlen( $needle );
return substr( $haystack, 0, $length ) === $needle;
}
function endsWith( $haystack, $needle ) {
$length = strlen( $needle );
if( !$length ) {
return true;
}
return substr( $haystack, -$length ) === $needle;
}