PHP 8.1.0 RC 4 available for testing

str_starts_with

(PHP 8)

str_starts_withПроверяет, начинается ли строка с заданной подстроки

Описание

str_starts_with(string $haystack, string $needle): bool

Выполняет проверку с учётом регистра, указывающую, начинается ли 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 
'"ленивая" не найдена, потому что регистр не соответствует';
}

?>

Результат выполнения данного примера:

Строка начинается с 'Ленивая'
"ленивая" не найдена, потому что регистр не соответствует

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • str_contains() - Определяет, содержит ли строка заданную подстроку
  • str_ends_with() - Проверяет, заканчивается ли строка заданной подстрокой
  • stripos() - Возвращает позицию первого вхождения подстроки без учёта регистра
  • strrpos() - Возвращает позицию последнего вхождения подстроки в строке
  • strripos() - Возвращает позицию последнего вхождения подстроки без учёта регистра
  • strstr() - Находит первое вхождение подстроки
  • strpbrk() - Ищет в строке любой символ из заданного набора
  • substr() - Возвращает подстроку
  • preg_match() - Выполняет проверку на соответствие регулярному выражению

add a note add a note

User Contributed Notes 2 notes

up
28
Paul Phillips
7 months ago
You can use this in PHP versions less than 8.

<?php
function str_starts_with ( $haystack, $needle ) {
  return
strpos( $haystack , $needle ) === 0;
}
up
6
jgusta
7 months ago
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.
To Top