# mb-strcut

mb_strcut

Get part of string

# 

ENTITY

string

mb_strcut

string

string

int

start

int

null

length

ENTITY

string

null

encoding

ENTITY

`mb_strcut` extracts a substring from a string similarly to `mb_substr`, but operates on bytes instead of characters. If the cut position happens to be between two bytes of a multi-byte character, the cut is performed starting from the first byte of that character. This is also the difference to the `substr` function, which would simply cut the string between the bytes and thus result in a malformed byte sequence.

# 

ENTITY

`string`  
The `string` being cut.

`start`  
If `start` is non-negative, the returned string will start at the `start`'th *byte* position in `string`, counting from zero. For instance, in the string '`abcdef`', the byte at position `0` is '`a`', the byte at position `2` is '`c`', and so forth.

If `start` is negative, the returned string will start at the `start`'th byte counting back from the end of `string`. However, if the magnitude of a negative `start` is greater than the length of the string, the returned portion will start from the beginning of `string`.

`length`  
Length in *bytes*. If omitted or ENTITY is passed, extract all bytes to the end of the string.

If `length` is negative, the returned string will end at the `length`'th byte counting back from the end of `string`. However, if the magnitude of a negative `length` is greater than the number of characters after the `start` position, an empty string will be returned.

`encoding`  
ENTITY

# 

ENTITY

`mb_strcut` returns the portion of `string` specified by the `start` and `length` parameters.

# 

ENTITY ENTITY

# 

ENTITY

| ENTITY | ENTITY |
|----|----|
| 8.4.0 | The behavior is more consistent now on invalid `UTF-8` and `UTF-16` strings. |

# 

ENTITY

`mb_substr`, `mb_internal_encoding`