You can use this in PHP versions less than 8.
<?php
function str_starts_with ( $haystack, $needle ) {
return strpos( $haystack , $needle ) === 0;
}
(PHP 8)
str_starts_with — Проверяет, начинается ли строка с заданной подстроки
Выполняет проверку с учётом регистра, указывающую,
начинается ли haystack
с подстроки needle
.
haystack
Строка для поиска.
needle
Подстрока для поиска в haystack
.
Возвращает true
, если haystack
начинается с
needle
, false
в противном случае.
Пример #1 Использование пустой строки ''
<?php
if (str_starts_with('абв', '')) {
echo "Все строки начинаются с пустой строки";
}
?>
Результат выполнения приведённого примера:
Все строки начинаются с пустой строки
Пример #2 Демонстрация чувствительности к регистру
<?php
$string = 'Ленивая лиса перепрыгнула через забор';
if (str_starts_with($string, 'Ленивая')) {
echo "Строка начинается с 'Ленивая'\n";
}
if (str_starts_with($string, 'ленивая')) {
echo 'Строка начинается с 'ленивая'';
} else {
echo '"ленивая" не найдена, потому что регистр не соответствует';
}
?>
Результат выполнения приведённого примера:
Строка начинается с 'Ленивая' "ленивая" не найдена, потому что регистр не соответствует
Замечание: Эта функция безопасна для обработки данных в двоичной форме.
You can use this in PHP versions less than 8.
<?php
function str_starts_with ( $haystack, $needle ) {
return strpos( $haystack , $needle ) === 0;
}
With credit to Paul Phillips for the original polyfill posted.
If you do not have PHP 8, you can use these functions to get the capability of the new string functions.
But! Remember to use a conditional check to make sure the function is not already defined.
<?php
// source: Laravel Framework
// https://github.com/laravel/framework/blob/8.x/src/Illuminate/Support/Str.php
if (!function_exists('str_starts_with')) {
function str_starts_with($haystack, $needle) {
return (string)$needle !== '' && strncmp($haystack, $needle, strlen($needle)) === 0;
}
}
if (!function_exists('str_ends_with')) {
function str_ends_with($haystack, $needle) {
return $needle !== '' && substr($haystack, -strlen($needle)) === (string)$needle;
}
}
if (!function_exists('str_contains')) {
function str_contains($haystack, $needle) {
return $needle !== '' && mb_strpos($haystack, $needle) !== false;
}
}
?>
This keeps it from breaking in case you upgrade and forget that you added it. This is a good practice generally when using the global scope for your helper functions.