PHP Conference Nagoya 2025

iconv_substr

(PHP 5, PHP 7, PHP 8)

iconv_substrCut out part of a string

Description

iconv_substr(
    string $string,
    int $offset,
    ?int $length = null,
    ?string $encoding = null
): string|false

Cuts a portion of string specified by the offset and length parameters.

Parameters

string

The original string.

offset

If offset is non-negative, iconv_substr() cuts the portion out of string beginning at offset'th character, counting from zero.

If offset is negative, iconv_substr() cuts out the portion beginning at the position, offset characters away from the end of string.

length

If length is given and is positive, the return value will contain at most length characters of the portion that begins at offset (depending on the length of string).

If negative length is passed, iconv_substr() cuts the portion out of string from the offset'th character up to the character that is length characters away from the end of the string. In case offset is also negative, the start position is calculated beforehand according to the rule explained above.

encoding

If encoding parameter is omitted or null, string are assumed to be encoded in iconv.internal_encoding.

Note that offset and length parameters are always deemed to represent offsets that are calculated on the basis of the character set determined by encoding, whilst the counterpart substr() always takes these for byte offsets.

Return Values

Returns the portion of string specified by the offset and length parameters.

If string is shorter than offset characters long, false will be returned. If string is exactly offset characters long, an empty string will be returned.

Changelog

Version Description
8.0.0 length and encoding are nullable now.
7.0.11 If string is equal to offset characters long, an empty string will be returned. Prior to this version, false was returned in this case.

See Also

add a note

User Contributed Notes 1 note

up
0
doru87 at gmail dot com
14 years ago
just fyi, iconv_substr() unknown error (0) has been resolved in PHP 5.2

you can also try mb_substr() or just substr() when dealing with this issue. Unfortunately there is no way to fix it in versions prior to 5.2.

Regards,
Teodor Sandu
To Top