CascadiaPHP 2024

iconv_substr

(PHP 5, PHP 7, PHP 8)

iconv_substr截取字符串的部分

说明

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

根据 offsetlength 参数指定 string 截取的部分。

参数

string

原始字符串。

offset

如果 offset 是非负数,iconv_substr()string 开头第 offset 个字符开始截出部分,从 0 开始计数。

如果 offset 是负数,iconv_substr()string 末尾向前 offset 个字符开始截取。

length

如果指定了 length 并且是正数,返回的值从 offset 截取部分,最多包含 length 个字符(取决于 string 的长度)。

如果传入了负数的 lengthiconv_substr() 将从第 offset 个字符到离末尾 length 个字符截出 string 的部分。 如果 offset 也是负数,则开始位置计算规则的解释见以上。

encoding

如果省略了参数 encodingstring 的编码被认定为 iconv.internal_encoding

注意,offsetlength 参数总是被认为字符表现的偏移,基于 encoding 检测到的字符集进行统计计算,而相对应的 substr() 则是基于字节的位移来计算。

返回值

返回 offsetlength 参数指定的 string 的部分。

如果 stringoffset 字符数更短,将会返回 false。 如果 stringoffset 个字符的长度,将返回空字符串。

更新日志

版本 说明
8.0.0 lengthencoding 现在可为 null。
7.0.11 如果 string 等于 offset 个字符,将返回空字符串。之前的版本里,这种情况会返回 false

参见

add a note

User Contributed Notes 2 notes

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
up
-8
qbolec at terra dot es
17 years ago
<?=
iconv_substr
("A",0,1);
?>
generates folowing error:
Notice: iconv_substr() [function.iconv-substr]: Unknown error (0) in [...]

while, <?= iconv_substr("AB",0,1) ?> and <?= iconv_substr("AB",0,2) ?>
work as expected.
To Top