iconv_substr()
(PHP 5, PHP 7)
截取字符串的部分
说明
iconv_substr(string $str,int $offset[,int $length= iconv_strlen($str,$charset)[,string $charset= ini_get("iconv.internal_encoding")]]): string
根据$offset和$length参数指定$str截取的部分。
参数
- $str
原始字符串。
- $offset
如果$offset是非负数,iconv_substr()从$str开头第$offset个字符开始截出部分,从 0 开始计数。
如果$offset是负数,iconv_substr()从$str末尾向前$offset个字符开始截取。
- $length
如果指定了$length并且是正数,返回的值从$offset截取部分,最多包含$length个字符(取决于$string的长度)。
如果传入了负数的$length,iconv_substr()将从第$offset个字符到离末尾$length个字符截出$str的部分。如果$offset也是负数,则开始位置计算规则的解释见以上。
- $charset
如果省略了参数$charset,$string的编码被认定为iconv.internal_encoding。
注意,$offset和$length参数总是被认为字符表现的偏移,基于$charset检测到的字符集进行统计计算,而相对应的substr()则是基于字节的位移来计算。
返回值
返回$offset和$length参数指定的$str的部分。
如果$str比$offset字符数更短,将会返回FALSE
。如果$str是$offset个字符的长度,将返回空字符串。
更新日志
版本 | 说明 |
---|---|
7.0.11 | 如果$str等长于$offset个字符,将返回空字符串。之前的版本里,这种情况是会返回FALSE 的。 |
参见
substr()
返回字符串的子串mb_substr()
获取部分字符串mb_strcut()
获取字符的一部分
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
<?= 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.