Find the position of the last occurrence of a case-insensitive substring in a string

- « strrev

- strrpos »

- PHP Manual
- String Functions
- Find the position of the last occurrence of a case-insensitive substring in a string

# strripos

(PHP 5, PHP 7, PHP 8)

strripos — Find the position of the last occurrence of a case-insensitive substring in a string

### Description

strripos(string `$haystack`, string `$needle`, int `$offset` = 0): int|false

Find the numeric position of the last occurrence of `needle` in the `haystack` string.

Unlike the strrpos(), strripos() is case-insensitive.

### Parameters

`haystack`

  The string to search in.

`needle`

  The string to search for.

  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.

`offset`

  If zero or positive, the search is performed left to right skipping the first `offset` bytes of the `haystack`.

  If negative, the search is performed right to left skipping the last `offset` bytes of the `haystack` and searching for the first occurrence of `needle`.

  > Note:

  > This is effectively looking for the last occurrence of `needle` before the last `offset` bytes.

### Return Values

Returns the position where the needle exists relative to the beginnning of the `haystack` string (independent of search direction or offset).

> Note: String positions start at 0, and not 1.

Returns `false` if the needle was not found.

Warning

This function may return Boolean `false`, but may also return a non-Boolean value which evaluates to `false`. Please read the section on Booleans for more information. Use the === operator for testing the return value of this function.

### Changelog

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 | `needle` now accepts an empty string.
8.0.0 | Passing an int as `needle` is no longer supported.
7.3.0 | Passing an int as `needle` has been deprecated.

### Examples

Example #1 A simple strripos() example

    <?php$haystack = 'ababcd';$needle   = 'aB';$pos      = strripos($haystack, $needle);if ($pos === false) {    echo "Sorry, we did not find ($needle) in ($haystack)";} else {    echo "Congratulations!\n";    echo "We found the last ($needle) in ($haystack) at position ($pos)";}?>

The above example will output:

       Congratulations!
       We found the last (aB) in (ababcd) at position (2)

### See Also

- strpos() - Find the position of the first occurrence of a substring in a string
- stripos() - Find the position of the first occurrence of a case-insensitive substring in a string
- strrpos() - Find the position of the last occurrence of a substring in a string
- strrchr() - Find the last occurrence of a character in a string
- stristr() - Case-insensitive strstr
- substr() - Return part of a string