php讀取csv文件類

jopen 9年前發布 | 843 次閱讀 PHP

    <?php

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 < strlen($line); $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;     
}   

?>  </pre> 


 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!