iconv_substr

(PHP 5, PHP 7, PHP 8)

iconv_substr文字列の一部を切り出す

説明

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

文字列 string の、 offsetlength で指定された一部を返します。

パラメータ

string

元の文字列。

offset

offset が負でない場合、 iconv_substr()stringoffset 番目の文字(ゼロから数えて)から切り出します。

offset が負の場合、 iconv_substr()string の最後から数えて offset 番目の文字から切り出します。

length

length が指定され、かつ正である場合、 返される文字列は offset から数えて最大 length 文字数分となります (string の長さに依存します)。

もし負の length が渡された場合に iconv_substr() が切り出す文字列は、 stringoffset 番目の文字からはじまり、文字列の最後から数えて length 文字分戻ったところまでとなります。 offset も負の場合、開始位置は 上で説明した方式で計算されます。

encoding

encoding が指定されなかった場合、もしくは null の場合、文字セットは ini 設定 iconv.internal_encoding で定義された値とみなされます。

offsetlength のパラメータは、常に charset で定義された 文字セットにおける文字数と判断されることに注意してください。 一方、substr() の場合はこれらの値を常に バイト数として判断します。

戻り値

文字列 string の、 offsetlength で指定された一部を返します。

もし stringoffset の文字列長より短い場合は、false が返されます。 stringoffset の文字数に等しい場合、 空文字列が返されます。

変更履歴

バージョン 説明
8.0.0 lengthencoding は、nullable になりました。
7.0.11 stringoffset の文字数に等しい場合、 空文字列が返されます。 これより前のバージョンでは、この場合 false が返されていました。

参考

add a note add a note

User Contributed Notes 2 notes

up
-2
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