(PHP 5 >= 5.3.0, PHP 7, PHP 8)
str_getcsv — CSV 文字列をパースして配列に格納する
$string
,$separator
= ",",$enclosure
= "\"",$escape
= "\\"CSV 形式の文字列入力のフィールドをパースして、 読み込んだフィールドの内容を配列で返します。
注意:
この関数はロケール設定を考慮します。もし LC_CTYPE が例えば
en_US.UTF-8
の場合、 1 バイトエンコーディングの文字列は間違って読み込まれるかもしれません。
string
パースする文字列。
separator
フィールド区切り文字 (シングルバイト文字 1 文字のみ)。
enclosure
フィールド囲み文字 (シングルバイト文字 1 文字のみ)。
escape
エスケープ文字 (シングルバイト文字 最大1文字)。デフォルトはバックスラッシュ
(\
)。
空文字列 (""
) を指定すると、
(RFC 4180 に準拠していない) 独自仕様のエスケープ機構を無効にします。
注意: 通常、
enclosure
の文字は、 フィールドの中では二回出力されることでエスケープされます。 しかし、escape
の文字を代わりに使うこともできます。 よって、デフォルト値""
および\"
は同じ意味になります。enclosure
文字をエスケープすることを許可する以外に、escape
文字は特別な意味を何ら持ちません; つまり、自分自身をエスケープすることすら意味しません。
読み込んだフィールドの内容を配列で返します。
バージョン | 説明 |
---|---|
7.4.0 |
escape 引数は、
空文字列を、(RFC 4180 に準拠していない) 独自仕様のエスケープ機構を無効にするシグナルとして解釈するようになりました。
これより前のバージョンでは、空文字列はデフォルト値のように扱われていました。
|
例1 str_getcsv() の例
<?php
$string = 'PHP,Java,Python,Kotlin,Swift';
$data = str_getcsv($string);
var_dump($data);
?>
上の例の出力は以下となります。
array(5) { [0]=> string(3) "PHP" [1]=> string(4) "Java" [2]=> string(6) "Python" [3]=> string(6) "Kotlin" [4]=> string(5) "Swift" }