# substr_compare

(PHP 5, PHP 7)

substr_compare — Binary safe comparison of two strings from an offset, up to length characters

### Description

substr_compare ( string `$main_str` , string `$str` , int `$offset` [, int `$length` [, bool `$case_insensitivity` = `FALSE` ]] ) : int

substr_compare() compares `main_str` from position `offset` with `str` up to `length` characters.

### Parameters

`main_str`

  The main string being compared.

`str`

  The secondary string being compared.

`offset`

  The start position for the comparison. If negative, it starts counting from the end of the string.

`length`

  The length of the comparison. The default value is the largest of the length of the `str` compared to the length of `main_str` minus the `offset`.

`case_insensitivity`

  If `case_insensitivity` is `TRUE`, comparison is case insensitive.

### Return Values

Returns < 0 if `main_str` from position `offset` is less than `str`, > 0 if it is greater than `str`, and 0 if they are equal. If `offset` is equal to (prior to PHP 7.2.18, 7.3.5) or greater than the length of `main_str`, or the `length` is set and is less than 0, (or, prior to PHP 5.5.11, less than 1) substr_compare() prints a warning and returns `FALSE`.

### Changelog

Version | Description
--- | ---
7.2.18, 7.3.5 | `offset` may now be equal to the length of `main_str`.

### Examples

Example #1 A substr_compare() example

`<?php
echo substr_compare("abcde", "bc", 1, 2); // 0
echo substr_compare("abcde", "de", -2, 2); // 0
echo substr_compare("abcde", "bcg", 1, 2); // 0
echo substr_compare("abcde", "BC", 1, 2, true); // 0
echo substr_compare("abcde", "bc", 1, 3); // 1
echo substr_compare("abcde", "cd", 1, 2); // -1
echo substr_compare("abcde", "abc", 5, 1); // warning
?>`

### See Also

- strncmp() - Binary safe string comparison of the first n characters