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 — Détermine si une chaîne commence par une sous-chaîne donnée
Effectue une vérification sensible à la casse indiquant si
haystack
commence par needle
.
haystack
La chaîne dans laquelle on effectue la recherche.
needle
La sous-chaîne à rechercher dans haystack
.
Renvoie true
si haystack
commence par
needle
, sinon false
.
Exemple #1 Avec une chaîne vide ''
<?php
if (str_starts_with('abc', '')) {
echo "All strings start with the empty string";
}
?>
L'exemple ci-dessus va afficher :
All strings start with the empty string
Exemple #2 Démonstration de la sensibilité à la casse
<?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';
}
?>
L'exemple ci-dessus va afficher :
The string starts with 'The' "the" was not found because the case does not match
Note: Cette fonction gère les chaînes binaires.
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.