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 — Verifica se uma string começa com uma substring fornecida
Realiza uma verificação case-sensitive indicando se
haystack
começa com needle
.
haystack
A string onde será feita a busca.
needle
A substring para procurar em haystack
.
Retorna true
se haystack
começa com
needle
, false
caso contrário.
Exemplo #1 Usando uma string vazia ''
<?php
if (str_starts_with('abc', '')) {
echo "Toda string começa com uma string vazia";
}
?>
O exemplo acima produzirá:
Toda string começa com uma string vazia
Exemplo #2 Mostrando o case-sensitivity
<?php
$string = 'Uma raposa preguiçosa pulou a cerca';
if (str_starts_with($string, 'Uma')) {
echo "A string começa com 'Uma'\n";
}
if (str_starts_with($string, 'uma')) {
echo 'A string começa com "uma"';
} else {
echo '"uma" não foi encontrado porque o case não corresponde';
}
?>
O exemplo acima produzirá:
A string começa com 'A' "a" não foi encontrado porque o case não corresponde
Nota: Esta função é compatível com dados binários.
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.