$haystack
, string $needle
, bool $before_needle
= false
): string|false
Returns all of haystack
starting from and including the first
occurrence of needle
to the end.
haystack
The string to search in
needle
Prior to PHP 8.0.0, if needle
is not a string, it is converted
to an integer and applied as the ordinal value of a character.
This behavior is deprecated as of PHP 7.3.0, and relying on it is highly
discouraged. Depending on the intended behavior, the
needle
should either be explicitly cast to string,
or an explicit call to chr() should be performed.
before_needle
If true
, stristr()
returns the part of the haystack
before the
first occurrence of the needle
(excluding needle).
needle
and haystack
are examined in a case-insensitive manner.
Returns the matched substring. If needle
is not
found, returns false
.
Version | Description |
---|---|
8.2.0 | Case folding no longer depends on the locale set with setlocale(). Only ASCII case folding will be done. Non-ASCII bytes will be compared by their byte value. |
8.0.0 |
Passing an int as needle is no longer supported.
|
7.3.0 |
Passing an int as needle has been deprecated.
|
Example #1 stristr() example
<?php
$email = 'USER@EXAMPLE.com';
echo stristr($email, 'e'); // outputs ER@EXAMPLE.com
echo stristr($email, 'e', true); // outputs US
?>
Example #2 Testing if a string is found or not
<?php
$string = 'Hello World!';
if(stristr($string, 'earth') === FALSE) {
echo '"earth" not found in string';
}
// outputs: "earth" not found in string
?>
Example #3 Using a non "string" needle
<?php
$string = 'APPLE';
echo stristr($string, 97); // 97 = lowercase a
// outputs: APPLE
?>
Note: This function is binary-safe.