MW211 EXIT

devlog
PHP/自前のgetCsv()
2022年05月14日
┌──────────────────────────────────────┐
│function getCsv($rows) {                                                    │
│    if (count($rows) == 0) {                                                │
│        return NULL;                                                        │
│    }                                                                       │
│    $return = [];                                                           │
│    $i = 0;                                                                 │
│    $return[] = implode(',', array_keys($rows[$i]));                        │
│    // 二件目以降読込                                                       │
│    do {                                                                    │
│        // CSV補正                                                          │
│        foreach ($rows[$i] as &$column) {                                   │
│            // 「"」を「""」に変換                                          │
│            if (preg_match('/"/', $column)) {                               │
│                $column = preg_replace('/"/', '""', $column);               │
│            }                                                               │
│            // 「"~"」で囲う                                               │
│            if ((preg_match('/"/' , $column))                               │
│             || (preg_match('/,/' , $column))                               │
│             || (preg_match('/\n/', $column)))                              │
│            {                                                               │
│                $column = '"' . $column . '"';                              │
│            }                                                               │
│        }                                                                   │
│        unset($column);                                                     │
│        //                                                                  │
│        $return[] = implode(',', $rows[$i]);                                │
│        $i++;                                                               │
│    } while ($i < count($rows));                                            │
│    return implode("\r\n", $return) . "\r\n";                               │
│}                                                                           │
└──────────────────────────────────────┘
分類:PHP