Statement on glibc/iconv Vulnerability

str_ends_with

(PHP 8)

str_ends_withChecks if a string ends with a given substring

Descrizione

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

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

Elenco dei parametri

haystack

The string to search in.

needle

The substring to search for in the haystack.

Valori restituiti

Returns true if haystack ends with needle, false otherwise.

Esempi

Example #1 Using the empty string ''

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

Il precedente esempio visualizzerà:

All strings end with the empty string

Example #2 Showing case-sensitivity

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

if (
str_ends_with($string, 'fence')) {
echo
"The string ends with 'fence'\n";
}

if (
str_ends_with($string, 'Fence')) {
echo
'The string ends with "Fence"';
} else {
echo
'"Fence" was not found because the case does not match';
}

?>

Il precedente esempio visualizzerà:

The string ends with 'fence'
"Fence" was not found because the case does not match

Note

Nota: Questa funzione è binary-safe (gestisce correttamente i file binari)

Vedere anche:

  • str_contains() - Determine if a string contains a given substring
  • str_starts_with() - Checks if a string starts with a given substring
  • stripos() - Trova la prima occorrenza in una stringa senza distinzione tra maiuscole e minuscole
  • strrpos() - Trova la posizione dell'ultima occorrenza di un carattere in una stringa
  • strripos() - Trova la posizione dell'ultima occorrenza di una stringa in un'altra indipendentemente dalle lettere minuscole/maiusole
  • strstr() - Trova la prima occorrenza di una stringa
  • strpbrk() - Ricerca in una stringa uno qualsiasi dei caratteri di un dato set
  • substr() - Restituisce parte di una stringa
  • preg_match() - Riconoscimento con espressioni regolari

add a note

User Contributed Notes 3 notes

up
6
Reinder
10 months ago
In PHP7 you may want to use:

if (!function_exists('str_ends_with')) {
function str_ends_with($str, $end) {
return (@substr_compare($str, $end, -strlen($end))==0);
}
}

AFAIK that is binary safe and doesn't need additional checks.
up
6
javalc6 at gmail dot com
10 months ago
In case you are using an older version of PHP, you can define and use the following function:

function endsWith($haystack, $needle) {
$length = strlen($needle);
return $length > 0 ? substr($haystack, -$length) === $needle : true;
}
up
6
divinity76 at gmail dot com
2 years ago
this is the fastest php7-implementation i can think of, it should be faster than javalc6 and Reinder's implementations, as this one doesn't create new strings (but theirs does)

<?php
if (! function_exists('str_ends_with')) {
function
str_ends_with(string $haystack, string $needle): bool
{
$needle_len = strlen($needle);
return (
$needle_len === 0 || 0 === substr_compare($haystack, $needle, - $needle_len));
}
}
?>
To Top