-
- define("CSV_Start", 0);
- define("CSV_Quoted", 1);
- define("CSV_Quoted2", 2);
- define("CSV_Unquoted", 3);
-
- function readCSV($fh, $len, $delimiter = ',', $enclosure = '"') {
- $data = Array();
- $fildNr = 0;
- $state = CSV_Start;
-
- $data[0] = "";
-
- do {
- $line = fgets($fh, $len);
- for ($ix = 0; $ix if ($line[$ix] == $delimiter) {
- if ($state != CSV_Quoted) {
- $fildNr++;
- $data[$fildNr] = "";
- $state = CSV_Start;
- } else {
- $data[$fildNr] .= $line[$ix];
- }
- } elseif ($line[$ix] == $enclosure) {
- if ($state == CSV_Start) {
- $state = CSV_Quoted;
- } elseif ($state == CSV_Quoted) {
- $state = CSV_Quoted2;
- } elseif ($state == CSV_Quoted2) {
- $data[$fildNr] .= $line[$ix];
- $state = CSV_Quoted;
- } else {
- $data[$fildNr] .= $line[$ix];
- }
- } else {
- $data[$fildNr] .= $line[$ix];
- if ($state == CSV_Quoted2) {
- echo "error";
- } elseif ($state == CSV_Start) {
- $state = CSV_Unquoted;
- }
- }
- }
- } while ($state == CSV_Quoted);
-
- return $data;
- }
-
- ?>
复制代码
|