開始行: ***table_edit2.inc.php Excel出力のCSVについて考える [#x0d... 先週、なんとかCSV入出力に対応したものの単純なCSV形式(... //cut -Excelの出力するCSVを観察してみたところ次の仕様が存在しま... --セル内に「"」「,」「CRLF(改行)」があったとき「"セル"... --「"」がセル内にあった場合、「"」が追加され「""」となり... 他にもあるかもしれませんが、とりあえず上の条件を満たす... 一応、参考になるコードがないかと調べてみましたが、正規... +取り込んだCSV行の中に「"」がいくつあるか数え、偶数、奇数... ++偶数の時 「,」分割処理。 ++奇数の時 行を次の行と結合して前の処理に戻る。 +分割したフィールドの中に「"」が幾つあるか数え、奇数、偶... ++偶数の時 両端の「"」を取り除き、「""」が存在すれば「"... ++奇数の時 フィールドに「,」を追加する。次のフィールドと... #geshi{{{ class csv { var $join_line = ''; var $list_csv = array(); function csv_import_cv($line) { $this->join_line .= $line; $chk_count = substr_count ( $this->join_line, '"'); if (!( $chk_count % 2 )) { $csv_fields = array(); $join_f = ''; $fields = explode(',', $this->join_line); foreach ( $fields as $field ) { $chk_count_f = substr_count ( $join_f, '"'); if (!( $chk_count_f % 2 )) { $csv_f = preg_match('/^"(.*?)"$/', $join_f, $match) ... $csv_fields[] = str_replace( '""', '"', $csv_f); $join_f = ''; } else { $join_f .= ','; } } $this->join_line = ''; $this->list_csv[] = $csv_fields; } } } }}} こんな感じだろうか… 終了行: ***table_edit2.inc.php Excel出力のCSVについて考える [#x0d... 先週、なんとかCSV入出力に対応したものの単純なCSV形式(... //cut -Excelの出力するCSVを観察してみたところ次の仕様が存在しま... --セル内に「"」「,」「CRLF(改行)」があったとき「"セル"... --「"」がセル内にあった場合、「"」が追加され「""」となり... 他にもあるかもしれませんが、とりあえず上の条件を満たす... 一応、参考になるコードがないかと調べてみましたが、正規... +取り込んだCSV行の中に「"」がいくつあるか数え、偶数、奇数... ++偶数の時 「,」分割処理。 ++奇数の時 行を次の行と結合して前の処理に戻る。 +分割したフィールドの中に「"」が幾つあるか数え、奇数、偶... ++偶数の時 両端の「"」を取り除き、「""」が存在すれば「"... ++奇数の時 フィールドに「,」を追加する。次のフィールドと... #geshi{{{ class csv { var $join_line = ''; var $list_csv = array(); function csv_import_cv($line) { $this->join_line .= $line; $chk_count = substr_count ( $this->join_line, '"'); if (!( $chk_count % 2 )) { $csv_fields = array(); $join_f = ''; $fields = explode(',', $this->join_line); foreach ( $fields as $field ) { $chk_count_f = substr_count ( $join_f, '"'); if (!( $chk_count_f % 2 )) { $csv_f = preg_match('/^"(.*?)"$/', $join_f, $match) ... $csv_fields[] = str_replace( '""', '"', $csv_f); $join_f = ''; } else { $join_f .= ','; } } $this->join_line = ''; $this->list_csv[] = $csv_fields; } } } }}} こんな感じだろうか… ページ名: