【php】CSV形式の文字列をパースする(文字列をfgetcsv())
問題
CSV形式の文字列を簡単に配列にできない? CSVのファイルではないんだけど……
解答例
php5.3以降では str_getcsv() という関数が登場して、いくぶんやりやすそうであるが、古い環境では自作することになる。
下のコードは、文字列をfgetcsv()するサンプル。一時ファイルを活用している。
/** * fgetcsvの文字列版 */ function sgetcsv($csv) { $data = array(); $_csv = mb_convert_encoding($csv, 'utf-8', 'auto'); $fp = tmpfile(); fwrite($fp, $_csv); rewind($fp); while ($row = fgetcsv($fp, 4096)) { $data[] = $row; } fclose($fp); return $data; }
コメント