略微加速

PHP官方手册 - 互联网笔记

PHP - Manual: str_starts_with

2024-12-20

str_starts_with

(PHP 8)

str_starts_withChecks if a string starts with a given substring

说明

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

Performs a case-sensitive check indicating if haystack begins with needle.

参数

haystack

The string to search in.

needle

The substring to search for in the haystack.

返回值

Returns true if haystack begins with needle, false otherwise.

范例

示例 #1 Using the empty string ''

<?php
if (str_starts_with('abc''')) {
    echo 
"All strings start with the empty string";
}
?>

以上例程会输出:

All strings start with the empty string

示例 #2 Showing case-sensitivity

<?php
$string 
'The lazy fox jumped over the fence';

if (
str_starts_with($string'The')) {
    echo 
"The string starts with 'The'\n";
}

if (
str_starts_with($string'the')) {
    echo 
'The string starts with "the"';
} else {
    echo 
'"the" was not found because the case does not match';
}

?>

以上例程会输出:

The string starts with 'The'
"the" was not found because the case does not match

注释

注意: 此函数可安全用于二进制对象。

参见

  • str_contains() - Determine if a string contains a given substring
  • str_ends_with() - Checks if a string ends with a given substring
  • stripos() - 查找字符串首次出现的位置(不区分大小写)
  • strrpos() - 计算指定字符串在目标字符串中最后一次出现的位置
  • strripos() - 计算指定字符串在目标字符串中最后一次出现的位置(不区分大小写)
  • strstr() - 查找字符串的首次出现
  • strpbrk() - 在字符串中查找一组字符的任何一个字符
  • substr() - 返回字符串的子串
  • preg_match() - 执行匹配正则表达式
add a noteadd a note

User Contributed Notes 3 notes

up
45
Paul Phillips
1 year ago
You can use this in PHP versions less than 8.

<?php
function str_starts_with ( $haystack, $needle ) {
  return
strpos( $haystack , $needle ) === 0;
}
up
15
jgusta
1 year 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.
up
3
Reinder
7 months ago
In PHP7 you may want to use:

if (!function_exists('str_starts_with')) {
  function str_starts_with($str, $start) {
    return (@substr_compare($str, $start, 0, strlen($start))==0);
  }
}

AFAIK that is binary safe and doesn't need additional checks.

官方地址:https://www.php.net/manual/en/function.str-starts-with.php

北京半月雨文化科技有限公司.版权所有 京ICP备12026184号-3